Когда я увидел этот вопрос, я реализовал эту идею в своем текущем проекте, и она сработала, спасибо за это. Так что идея сделать это, есть пользовательская кнопка назад. Я мог бы опубликовать весь код к этому, но это сделало бы это кормлением с ложечки. В любом случае, здесь идут шаги:
Сделайте UIButton
и сделайте его своей собственной кнопкой возврата UIBarButtonItem
в панели навигации вашего контроллера навигации, если вы когда-либо используете ее.
Селектор был бы, очевидно, таким, не обращайте внимания на код внутри, потому что он взят из моего проекта, но вы поняли:
func back() {
if let navCon = self.navigationController {
navCon.popViewController(animated: true)
}
}
И для двойного нажатия, для этого вам понадобится TapGesture. У меня есть этот объявлен так:
private lazy var doubleTapGesture: UITapGestureRecognizer = {
let gesture = UITapGestureRecognizer(target: self, action: #selector(self.doubleTap))
gesture.numberOfTapsRequired = 2
return gesture
}()
и добавить это к вашей кнопке. Селектор будет выглядеть так:
@objc private func doubleTap() {
self.navigationController?.popToRootViewController(animated: true)
}
VOILA! Работает плавно. Легко, правда? Надеюсь, это поможет!
Посмотрите, работает ли это на Вас. Не уверенный в точном ature проблемы, но это имеет некоторое отношение к использованию td с относительным расположением. Я перенес таблицу с тегом Div и расположил это относительно, и это, кажется, делает то, что Вы хотите.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>Test</title>
<style type="text/css">
table { width:500px; }
th, td { vertical-align: top; border:1px solid black; }
th { width:100px; }
div.body {position:relative; width:500px;}
.manage { text-align:right; position:absolute; bottom:0; right:0; display:block}
</style>
</head>
<body >
<div class="body"><table>
<tr>
<th>Some info about the following thing and this is actually going to span a few lines</th>
<td><p>A short blurb</p><div class="manage">Edit | Delete</div></td>
</tr>
</table></div>
</body>
</html>
position: relative
по-видимому, глобально не поддерживается для td
тег. Я не мог найти категорические источники, к сожалению.
Вы могли бы хотеть поместить a div
блок в td
с желаемым размером и применяются position: relative
к этому вместо этого.
Согласно W3C, position:relative не имеет никакого эффекта на ячейки таблицы:
"Эффект 'position:relative' на группе строки таблицы, группе заголовка таблицы, table-footer-group, строке таблицы, группе столбцов таблицы, столбце таблицы, ячейке таблицы и элементах подписи таблицы не определен".
Решение состоит в том, чтобы добавить дополнительное отделение обертывания к ячейке таблицы.
Править: Это отделение требует a height:100%
и position:relative;
быть установленным.
<table>
<tr>
<td>
<div style="position:relative;height:100%;">
Normal inline content.
<div class="manage">your absolute-positioned content</div>
</div>
</td>
</tr>
</table>
Это может звучать действительно очевидным, но иметь Вас, пытался использовать vertical-align: bottom;
в .manage?
имейте DIV в TD с шириной: 100% и высота: 100%, затем устанавливает это на положение: родственник.
Право, position:relative не имеет никакого эффекта для элементов таблицы, и Firefox применяет это правило. Решение работ отделения, но это - ужасная разметка, по-моему.
Необходимо ли абсолютно использовать таблицу для отображения этого содержания? (Или действительно ли это относительно?)
В противном случае, почему Вы не используете элементы отделения и делаете то, что Вы хотите?
Использовать таблицы для проблем расположения таким образом 1998...
Поместите display: block
на стол, и теперь FF учитывает позицию: relative.