我创建了一个表视图,然后让用户按下一个单元格,它将转到detailItemView,但现在唯一的问题是每当用户在detailItemView中时,即使没有后退按钮,我认为我已经嵌入了导航控制器
这是用户按下单元格后将执行segue的代码:
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
// Get the new view controller using [segue destinationViewController].
var nav = segue.destinationViewController as! UINavigationController
var detailScene = nav.topViewController as! DetailViewController
// Pass the selected object to the destination view controller.
if let indexPath = self.tableView.indexPathForSelectedRow() {
let row = Int(indexPath.row)
detailScene.currentObject = objects?[row] as? PFObject
}
}
故事板的截图:
编辑过的截图
我尝试了下面的答案,但仍然没有后退按钮
另一个截图,detailView控制器没有后退按钮
答案 0 :(得分:10)
将TableViewController嵌入NavigationController中。不是DetailViewController直接。看看截图。
确保连接TableViewController和DetailViewController的segue类型为 Show(例如Push)。您必须在Navigationstack顶部push一个新视图。
答案 1 :(得分:3)
我刚才有同样的问题,通过删除segue,再次添加并立即给它一个标识符来解决。
答案 2 :(得分:3)
单击StoryBoardSegue,tableviewcontroller和detailviewcontroller之间的链接。在属性检查器中,即使选中了“动画”,也可能需要单击“动画”检查。选择位于“Kind”下拉菜单中的“Show(egPush)”后执行此操作。然后运行您的应用程序,然后在停止您的应用程序后重新选择相同的“动画”选项。我认为这是一个错误,花了我一个小时来弄清楚如何解决这个问题。此外,您可以使用已弃用的“推送”,但这将违反警告。已弃用的“推送”位于StoryBoardSegue属性检查器中的“Kind”下。
答案 3 :(得分:1)
我也在努力解决这个问题,并且我命名了segue的标识符,现在它可以工作了。只需从表视图中选择segue(箭头)到视图,然后转到选项所在的右上角,然后选择显示属性检查器。标识符有一个字段。
答案 4 :(得分:0)
只需使用uinavigation
制作UItableview
,然后将单元格连接为(显示)
答案 5 :(得分:0)
如果当前视图控制器嵌入在导航控制器中,则无需在导航控制器中嵌入详细视图控制器。只需将按钮连接到详细视图控制器,后退导航就会自动生成。
答案 6 :(得分:0)
在“属性”检查器中将detailView的“界面样式”更改为“推断”