我是iOS编程的新手(使用Swift学习),最近对Master Detail Applications感兴趣,因为我学习的这本书的当前章节也是关于它的。
我注意到我的书似乎有点太旧了,因为Xcode的Master Detail Apps模板引入了分割视图控制器,而书中的模板仍然只使用导航控制器作为初始ViewController:
我想做的是放置一个" +"主视图控制器工具栏中的按钮,然后触发详细视图控制器内另一个ViewController的全屏弹出窗口。请参阅联系人应用程序作为参考,如果您在iPad或iPhone Plus上横向运行,则会发生这种情况:
在本书的例子中,只有" +"已添加到工具栏中,并从中添加了一个segue到新的View Controller,但使用Xcode的新模板并不容易。如何在详细视图中制作这样的弹出框,但是在主视图中按钮启动?
由于
答案 0 :(得分:1)
从默认的MD模板开始:
从addButton
的{{1}}移除MasterViewController
代码。
在情节提要中为主人创建一个添加按钮,并将其链接到viewDidLoad
操作。
从您的详细控制器创建一个segue到您要用作叠加层的segue,并为其命名。
在详细控制器中创建执行该segue的方法。
E.g:
MasterViewController
E.g:
func displayOverlay() {
print("perform a segue here to the required controller")
self.performSegueWithIdentifier("overlay", sender: self)
}
如果您想要显示的动画样式,则需要做额外的工作,但这应该可以获得基本的控制器连接。