模拟 UINavigationController Pop

Posted

技术标签:

【中文标题】模拟 UINavigationController Pop【英文标题】:Simulating a UINavigationController Pop 【发布时间】:2015-07-08 07:36:13 【问题描述】:

我正在使用导航控制器,效果很好。但是,一些自定义按钮与新的 ViewControllers (不在堆栈中)相关联,我不喜欢它使用的推送式过渡动画。

目标: 我希望过渡(如上所述)模仿导航堆栈弹出过渡(当前视图向右滑动,显示下面的视图)。

我已经使用下面的代码成功模拟了一个导航弹出,但是在我的按钮和导航栏后退按钮出现超级故障之后。

@IBAction func Page2_to_Page1_ButPush(sender: AnyObject) 

    var curPage: UIViewController = self.storyboard!.instantiateViewControllerWithIdentifier("Page2_ID") as! UIViewController
    var prevPage: UIViewController = self.storyboard!.instantiateViewControllerWithIdentifier("Page1_ID") as! UIViewController

    self.navigationController?.pushViewController(prevPage, animated: false)
    self.navigationController?.pushViewController(curPage, animated: false)
    self.navigationController?.popViewControllerAnimated(true)


谁能提供一种简单的方法让我的 segues 模拟 nav-pop?

详情: X-代码 6.4 迅速 故事板

【问题讨论】:

【参考方案1】:

解决方案如下:

ios Segue - Left to Right -

简单、容易、完美。添加链接中显示的“SegueFromLeft”类代码,从左侧选择要呈现的segue,选择自定义,将其指向“SegueFromLeft”,动画就死了。

奖励:更好的是,它与导航控制器同步,因此导航“返回”按钮仍然有效。

【讨论】:

以上是关于模拟 UINavigationController Pop的主要内容,如果未能解决你的问题,请参考以下文章

UINavigationController 没有推送/显示视图

无法将类型值转换为 UINavigationController swift3

无法将类型的值转换为UINavigationController swift3

prepareForSegue 在模拟器上工作但不在设备上

3.5" 与 4" iPhone 的 ScrollView 高度

关闭 UINavigationController 并呈现另一个 UINavigationController