ios - 连续推送 ViewController 时缺少导航或后退按钮的标题

标签 ios swift uinavigationcontroller pushviewcontroller

连续推送 View Controller 时,UINavigationController 出现问题。

有关信息,我使用 XCode 7.0,针对 iOS 8 构建,并且应用程序在 Simulator 9.0 上运行。

这是用户手动点击 tableview 的单元格时的 View :

User manually push the controller by tapping on tableview's cell

如上面的屏幕截图所示,导航和后退按钮的标题已正常呈现。

但是当我以编程方式执行此操作时,就像这样(stackUIViewController 的数组):

for controller in stack {
    self.mainNavController.pushViewController(controller, animated: false)
}

或者像这样使用 0.0 秒的延迟:

for controller in stack {
    dispatch_after(dispatch_time(DISPATCH_TIME_NOW, Int64((0.0 * Float(NSEC_PER_SEC)))), dispatch_get_main_queue(), {
        self.mainNavController.pushViewController(controller, animated: false)
    })
}

最终结果会这样显示(左边是w/o delay,右边是w/delay):

enter image description here

请注意左侧屏幕截图中缺少导航标题(无延迟),右侧屏幕截图中缺少后退按钮标题(有延迟)。

这个问题困扰了我好几天。知道为什么会这样吗?有谁知道如何解决这一问题?或者至少,解决这个问题?

提前致谢。

最佳答案

这就是我过去所做的。您可能会发现它有帮助:

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
    let myBackButton = UIBarButtonItem()
    myBackButton.title = "This is my back button"
    navigationItem.backBarButtonItem = myBackButton
}

关于ios - 连续推送 ViewController 时缺少导航或后退按钮的标题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33387260/

相关文章:

swift - 从 Swift 中的扩展访问结构体的存储属性

objective-c - 调整 UINavigationController 的大小?

iOS 通过 POST 到 Web 服务器 - 字符串被切断?

ios - 在搜索位置时,对 Google Map Swift 4 上的某些地址没有任何响应

ios - UILabel 垂直着色为 2 种颜色

iphone - 调用viewDidAppear中的方法

ios - 解析推送数据到详细 View 等于 null

ios - Push Segue 触发一个 Modal Segue,导致没有导航栏的 VC

iOS后台下载

ios - 如何防止更新UITableView中的单元格?