我有一个问题我无法弄清楚,我已经制作了一个在标签栏中使用UIsplitview的应用程序。我一直在实现不同的选项卡,但是当我处理第一个选项卡时 - UIsplitview未在横向模式下对齐。你们有什么建议 - 如果我以肖像方式开始并去景观,那么根本就没有问题。
更新: 我没有在任何地方使用任何框架,我已经检查了IB中的尺寸等。以下显示了我如何在app delegate中添加uisplitview控制器。它已经这样做了,因为我想在tabbar控制器中进行splitview。当我添加了spilview时,我只需在IB中设置主视图和详细视图。有点神秘。
if (index == 2) {
detailViewController = [[DetailUserCreatorViewController alloc] initWithNibName:@"DetailUserCreatorView" bundle:nil];
userContent=[[UserContentForPopViewController alloc]init];
userContent.userDetails=detailViewController;
detailViewController.delegate=userContent;
//rootViewController.navigationItem.title = @"List";
UINavigationController *nav = [[[UINavigationController alloc] initWithRootViewController:userContent] autorelease];
splitViewController = [[UISplitViewController alloc] init];
splitViewController.tabBarItem = controller.tabBarItem;
splitViewController.viewControllers = [NSArray arrayWithObjects:nav, detailViewController, nil];
splitViewController.delegate = detailViewController;
[controllers replaceObjectAtIndex:index withObject:splitViewController];
}
更新:我尝试在app delegate中设置应用程序didfinishlaunch中的选定选项卡 - self.tabBarController.selectedIndex = 0;这使得标签从正确的位置开始。但它似乎不是一个合适的解决方案。
答案 0 :(得分:0)
一些指针......需要将splitViewController添加为窗口的子视图:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
[window addSubview:splitViewController.view];
[window makeKeyAndVisible];
return YES;
}
以下代码不正确。您不应该将viewController分配给委托。
splitViewController.delegate = detailViewController;
您也不需要这行代码:
[controllers replaceObjectAtIndex:index withObject:splitViewController];
以下行处理分配代理的那一部分。
splitViewController.viewControllers = [NSArray arrayWithObjects:nav, detailViewController, nil];
此外,如果您可以上传您的代码,我会尝试更正它并回发原因并更正代码......