gpt4 book ai didi

ios - 从 MasterView 触发 DetailView 中的弹出窗口

转载 作者:行者123 更新时间:2023-11-28 06:43:22 25 4
gpt4 key购买 nike

我是 iOS 编程的新手(学习 Swift),最近对 Master Detail Applications 感兴趣,因为我正在学习的书的当前章节也是关于它的。

我注意到我的书似乎有点太旧了,因为 Xcode 的 Master Detail Apps 模板引入了一个 Split View Controller,而书中的模板仍然只使用 Navigation Controller 作为初始 ViewController:

Template from Xcode(来自 Xcode 的模板) Template from the book(书中的模板)

我想做的是在 Master View Controller 的工具栏中放置一个“+”按钮,然后触发 Detail View Controller 中另一个 ViewController 的全屏弹出。请参阅联系人应用程序作为引用,如果您在 iPad 或 iPhone Plus 上横向运行它,就会发生这种情况:

Example from contacts app(联系人应用程序中的示例)

在书中的示例中,只是将“+”添加到工具栏,并从它添加了一个 segue 到新的 View Controller,但使用 Xcode 的新模板就没那么容易了。如何在详细信息 View 中制作这样一个弹出窗口,但由主视图中的按钮启动?

谢谢

最佳答案

从默认的 MD 模板开始:

  • MasterViewControllerviewDidLoad 中移除 addButton 代码。

  • 在 Storyboard中为母版创建一个添加按钮,并将其链接到 MasterViewController 操作。

  • 从您的细节 Controller 到您想要用作叠加层的 Controller 创建一个 segue,并为其命名。

  • 在执行该 segue 的细节 Controller 中创建一个方法。

例如:

func displayOverlay() {
print("perform a segue here to the required controller")
self.performSegueWithIdentifier("overlay", sender: self)
}
  • 在master action中,调用detail方法触发segue。

例如:

@IBAction func detailAdd(sender: AnyObject) {
if let dvc : DetailViewController = detailViewController {
dvc.displayOverlay()
} else {
print("Oops...no detail controller")
}
}

如果您想要显示的动画样式,您将不得不做额外的工作,但这应该让您获得基本的 Controller 连接。

关于ios - 从 MasterView 触发 DetailView 中的弹出窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37252300/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com