![](/img/trans.png)
[英]How can I push a new View Controller from a button within a subView (another View Controller) in Storyboard
[英]In an iOS 5 Storyboard, how do you push a new scene to the original view controller from a Popover?
我正在从一个新的视图控制器创建一个popoverSegue,并希望将第三个视图控制器推送到原始堆栈。 这就是我创建应用程序的方式:
Single View Application
Use Storyboards
MainStoryboard.storyboard
文件。 Title
和Identifier
更改为initialView
,然后选择Editor->Embed In->Navigation Controller
View Controller
对象从Objects Library拖到画布上 Title
和Identifier
更改为: popoverView
和newView
。 Round Rect Button
对象从Object Library添加到initialView
和popoverView
。 Label
对象添加到`newView。 initialView
的按钮并拖动到popoverView
。 Storyboard Segues
菜单中选择Popover
选项。 popoverView
的按钮并拖动到newView
。 Storyboard Segues
菜单中选择Push
选项。 单击第一个按钮,弹出窗口,但是当您单击弹出窗口中的按钮时,没有任何反应(它应该按下新视图但不会。)
我想要做的是将其推送到Navigation Controller
堆栈,但我不确定如何设置故事板。
有任何想法吗?
您期望UINavigationController
层次结构将其自身扩展为呈现的弹出窗口。 它不会。 对于呈现模态视图控制器也是如此。 如果你要在popoverView
记录self.navigationController
,你会发现它是零。
将popoverView
嵌入到它自己的UINavigationController
。 请记住,如果你要覆盖prepareForSegue:sender:
并尝试配置popover,则需要从destinationViewController
获取topViewController
,因为目标现在是UINavigationController
一个实例。
听起来它应该工作,但如果它没有尝试以下:1。单击不起作用的segue并给它一个标识符。 让我们说它是PopoverToNewSegue。
在弹出视图控制器的实现文件中,单击按钮时添加操作。
该函数应返回void并添加以下行:[self performSegueWithIdentifier:@“PopoverToNewSegue”sender:self];
那会让你的赛车运转起来。 我注意到segue并不总是像你期望的那样工作,但这个对我有用。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.