你好,我在 FirstViewController 上有一个按钮,我将一个 segue 从 firstViewController 拖到 secondViewController 作为 segue Modally。现在在 secondViewController 上我以编程方式生成一个 Button 并继续第三个 Controller 我正在插入 Controller (segue Push)但它不起作用。第三个 Controller 没有出现。单击自定义按钮时没有任何反应。
这是第二个ViewController的代码
func nextButtonClicked(sender:UIButton!){
let takeProductPhotoController = self.storyboard!.instantiateViewControllerWithIdentifier("takeProductPhotoController") as! TakeProductPhotoController
takeProductPhotoController.trip = trip
self.navigationController?.pushViewController(takeProductPhotoController, animated: true)
}
注意:我不需要第二个 View Controller 上的 NavigationBar,因此在以模态方式呈现它时它没有显示 navigationBar。但我需要第三个导航栏。这就是我插入 naviagtioncontroller 的原因
最佳答案
- 每当你想从弹出的 Controller 中推送时,你必须创建
新的
NavigationController
并且还设置了你的ViewController
想要将模态呈现为navigationController
的rootViewController
。 - 当我们想以模态方式呈现
SecondViewcontroller
时,我们正在呈现rootViewController
设置为SecondViewController
的导航 Controller 。所以我们 已经创建了新的导航堆栈。之后我们要 将 Controller 推送到在呈现SecondViewController
时创建的新导航堆栈中。
1) 你的代码应该是这样的
在 FirstViewController
let secondViewController = UIStoryboard(name: "Main", bundle: nil).instantiateViewControllerWithIdentifier("aIdentifier") as! SecondViewController
let nav = UINavigationController(rootViewController: SecondViewController )
self.presentViewController(nav, animated:true, completion:nil)
2) 从 secondViewController
你可以将 ThirdViewController
插入
self.naviagtionController
。
在 SecondViewController 中的 Button Action 中编写以下代码
let thirdViewController = UIStoryboard(name: "Main", bundle: nil).instantiateViewControllerWithIdentifier("cIdentifier") as! ThirdViewController self.navigationController?.pushViewController(thirdViewController , animated: true)}
关于ios - 推送不适用于以模态方式呈现的 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35370683/