繁体   English   中英

在iOS 5 Storyboard中,如何从Popover将新场景推送到原始视图控制器?

[英]In an iOS 5 Storyboard, how do you push a new scene to the original view controller from a Popover?

我正在从一个新的视图控制器创建一个popoverSegue,并希望将第三个视图控制器推送到原始堆栈。 这就是我创建应用程序的方式:

  1. 创建一个新的Single View Application
  2. 选择Use Storyboards
  3. 选择MainStoryboard.storyboard文件。
  4. 选择唯一的View Controller,将TitleIdentifier更改为initialView ,然后选择Editor->Embed In->Navigation Controller
  5. 将两个新的View Controller对象从Objects Library拖到画布上
  6. 将新视图控制器的TitleIdentifier更改为: popoverViewnewView
  7. 将Object Round Rect Button对象从Object Library添加到initialViewpopoverView
  8. 将Object库中的Label对象添加到`newView。
  9. 控制单击initialView的按钮并拖动到popoverView
  10. 从出现的Storyboard Segues菜单中选择Popover选项。
  11. 控制单击popoverView的按钮并拖动到newView
  12. Storyboard Segues菜单中选择Push选项。
  13. 建立和运行。

单击第一个按钮,弹出窗口,但是当您单击弹出窗口中的按钮时,没有任何反应(它应该按下新视图但不会。)

想要做的是将其推送到Navigation Controller堆栈,但我不确定如何设置故事板。

有任何想法吗?

您期望UINavigationController层次结构将其自身扩展为呈现的弹出窗口。 它不会。 对于呈现模态视图控制器也是如此。 如果你要在popoverView记录self.navigationController ,你会发现它是零。

popoverView嵌入到它自己的UINavigationController 请记住,如果你要覆盖prepareForSegue:sender:并尝试配置popover,则需要从destinationViewController获取topViewController ,因为目标现在是UINavigationController一个实例。

听起来它应该工作,但如果它没有尝试以下:1。单击不起作用的segue并给它一个标识符。 让我们说它是PopoverToNewSegue。

  1. 在弹出视图控制器的实现文件中,单击按钮时添加操作。

  2. 该函数应返回void并添加以下行:[self performSegueWithIdentifier:@“PopoverToNewSegue”sender:self];

那会让你的赛车运转起来。 我注意到segue并不总是像你期望的那样工作,但这个对我有用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM