【发布时间】:2012-02-18 10:00:49
【问题描述】:
我有一个程序可以根据在 UITableView 中选择的行在 UISplitView 中创建 UIViewControllers。例如,如果用户单击名为“settings”的行,程序会创建一个名为 settingsTableVC 的视图控制器(显示在 UISplitViewController 的左侧窗格中)和一个名为 settingsDetailVC 的详细视图控制器,它显示在右侧窗格中.
逻辑工作正常,但我在初始 tableView 中的每一行都有很多代码,用于创建和设置每个 ViewController 及其公共属性,在我看来,更简单的方法是定义两个通用 ViewController ,然后在方法中将它们转换为正确的类型。这样,我可以通用地定义它们的公共属性(因为它们基本上都是相同的属性,指向 masterViewController 和 tableViewController 的指针)
例如
UIViewController *leftController = nil;
UIViewController *rightController = nil;'
然后,在 didSelectRowAtIndexPath 中:
leftController = [[SettingTableViewController alloc]init];
rightController = [[SettingsDetailViewController alloc]init];
leftController.masterVC = self;
rightController.tableVC = leftController;
但是,编译器警告 - 'UIViewController 没有声明属性 masterVC'。
如何在运行时更改这些 ViewController 的类?
【问题讨论】:
标签: xcode uiviewcontroller uisplitviewcontroller