我有一个应用程序将导航到 UISplitView (完全在另一个视图内),如下所示:
- (void) switchToMyDayView {
NSLog(@"Show My Day Screen");
if (self.myDayController.view.superview == nil) {
if (self.myDayController == nil) {
MyDayController *myController = [[MyDayController alloc] initWithNibName:@"MyDay" bundle:nil];
self.myDayController = myController;
[myController release];
}
[homeScreenController.view removeFromSuperview];
[self.view insertSubview:self.myDayController.view atIndex:0];
}
}
这是在主导航屏幕上完成的
现在,MyDayController 有一个名为 MyDay.xib 的 XIB,其中包含以下项目:
文件所有者:MyDayController
第一响应者:UIResponder
分屏视图控制器
---->Navigation Controller
---->Navigation Bar
----> Table View Controller
----> Navigation Item
---->View Controller
所以,我在这里需要更多组件,我需要 UITableViewController 和 UISplitViewControllerDelegate 对吗?
我打算在 MyDayController 中实现这些协议,这是标准吗?
所以,在上面的代码之后,我得到一个错误:
-[UIViewController _loadViewFromNibNamed:bundle:] 加载了“MyDay”笔尖,但未设置视图出口。
那么,如何使用 UISplitViewController 修复它?我知道 UISplitViewController 有一个 view 属性,但我无法在 IB 中使用它/连接它,可以吗?
多谢
Mark
您不必继承 UISplitViewController 的子类。您的“MyDayController”类中有什么行为? UISplitViewController 基本上只是为您处理主视图和详细视图的布局,因此您的责任是实现这些控制器。
如果分割视图位于应用程序的顶层,您可以将其添加到应用程序的主窗口笔尖。如果不是,只需以编程方式创建它:
- (void) switchToMyDayView {
NSLog(@"Show My Day Screen");
if (self.myDayController == nil) {
YourMasterViewController *masterViewController = [[YourMasterViewController alloc] initWithNibName:@"MasterView" bundle:nil];
YourDetailViewController *detailViewController = [[YourDetailViewController alloc] initWithNibName:@"DetailView" bundle:nil];
UISplitViewController *myController = [[UISplitViewController alloc] init;
myController.viewControllers = [NSArray arrayWithObjects:masterViewController, detailViewController, nil];
[masterViewController release];
[detailViewController release];
self.myDayController = myController;
[myController release];
}
[homeScreenController.view removeFromSuperview];
[self.view insertSubview:self.myDayController.view atIndex:0];
}
您也不需要进行测试self.myDayController.view.superview == nil
因为它隐含在self.myDayController == nil
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)