我正在从新的 View Controller 创建popoverSegue,并希望将第三个 View Controller 插入原始堆栈。这就是我创建应用程序的方式:
Single View Application
Use Storyboards
MainStoryboard.storyboard
文件。 Title
和Identifier
更改为initialView
,然后选择Editor->Embed In->Navigation Controller
View Controller
对象从对象库拖到 Canvas Title
和Identifier
更改为:popoverView
和newView
。 Round Rect Button
对象添加到initialView
和popoverView
中。 Label
对象到`newView。 initialView
中的按钮并拖动到popoverView
。 Popover
菜单中选择Storyboard Segues
选项。 popoverView
中的按钮,然后拖动到newView
。 Push
菜单中选择Storyboard Segues
选项。 单击第一个按钮,弹出窗口出现,但是当您单击弹出窗口中的按钮时,什么也没有发生(它应该按新 View ,但不按。)
我希望要做的是将其插入
Navigation Controller
堆栈,但不确定如何为此设置 Storyboard。有任何想法吗?
最佳答案
您期望UINavigationController
层次结构将自身扩展为显示的弹出框。不会的呈现模态视图 Controller 也是如此。如果要在self.navigationController
中记录popoverView
,您会发现它为nil。
将popoverView
嵌入到自己的UINavigationController
中。请记住,如果要覆盖prepareForSegue:sender:
并尝试配置弹出窗口,则需要从topViewController
获取destinationViewController
,因为目的地现在是UINavigationController
的实例。