Splitview未在顶部对齐

时间:2011-09-01 15:22:49

标签: ios uisplitview

我有一个问题我无法弄清楚,我已经制作了一个在标签栏中使用UIsplitview的应用程序。我一直在实现不同的选项卡,但是当我处理第一个选项卡时 - UIsplitview未在横向模式下对齐。你们有什么建议 - 如果我以肖像方式开始并去景观,那么根本就没有问题。

enter image description here

更新: 我没有在任何地方使用任何框架,我已经检查了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;这使得标签从正确的位置开始。但它似乎不是一个合适的解决方案。

1 个答案:

答案 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];

此外,如果您可以上传您的代码,我会尝试更正它并回发原因并更正代码......