【发布时间】:2014-07-17 21:00:46
【问题描述】:
(Xcode6-beta3、Swift、iOS8、iPad)
在 iPad 拆分视图控制器中,如何将主视图控制器链接到详细视图控制器?
换句话说,当用户点击左侧的一个项目时,如何更改右侧的视图?
我知道在didSelectRowAtIndexPath中,我需要调用一个方法……但是如何从Master View Controller调用Detail View Controller中的一个方法呢?
示例
想象一个应用程序可以显示不同类型奶酪的信息。我们首先将拆分视图控制器拖到情节提要上。左侧主视图中的项目表设置为如下所示。
- 瑞士
- 切达干酪
- 布里干酪
在右侧,详细视图控制器内部只有一个 Web 视图,名为 cheeseViewController。其中,将显示有关所选奶酪的 HTML 文档。
一个 IBOutlet 从 Web 视图连接到 cheeseViewController,并在 Detail View Controller 委托中设置了一个名为“changeCheese”的方法来换出文档。
如何点击“Cheddar”更改详细视图中的信息?
编辑:我必须修改我的 AppDelegate.swift 文件吗?使用 Master-Detail 模板,我尝试了以下方法,但没有成功:
func application(application: UIApplication!, didFinishLaunchingWithOptions launchOptions: NSDictionary!) -> Bool {
// Override point for customization after application launch.
let splitViewController = self.window!.rootViewController as UISplitViewController
let navigationController = splitViewController.viewControllers[splitViewController.viewControllers.count-1] as UINavigationController
splitViewController.delegate = navigationController.topViewController as Paragraph
return true
}
【问题讨论】:
-
请解释否决票!
-
是的,这是一个完全合法的问题。
标签: xcode swift uisplitviewcontroller master-detail didselectrowatindexpath