开发者

UISplitview not alligned at the top

开发者 https://www.devze.com 2023-04-01 16:36 出处:网络
I have a problem I can\'t figure out, I have made an application which uses UIsplitview inside a tab bar. I have been implementing the different tabs howe开发者_开发问答ver now when I am working on th

I have a problem I can't figure out, I have made an application which uses UIsplitview inside a tab bar. I have been implementing the different tabs howe开发者_开发问答ver now when I am working on the first tab - the UIsplitview is not aligned in landscape mode. Do you guys have any suggestions - if I start it in portrait and go to landscape, then there's no problem at all.

UISplitview not alligned at the top

Update: I dont do any init with frames anywhere, and I have checked the sizes etc. in IB. The following shows how I add the uisplitview controller in the app delegate. It has been done this way because I wanted a splitview in a tabbar controller. When i have added the spilview I just set the master and detail view in IB. A bit of mystery.

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];
    }

Update: I tried to set the selected tab in application didfinishlaunch in the app delegate - self.tabBarController.selectedIndex = 0; and this made the tab start at the correct placement. However it does not seem to be a proper solution.


Some pointers...splitViewController needs to be added as a subview of window:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {    

[window addSubview:splitViewController.view];
[window makeKeyAndVisible];

return YES;
}

The following code is incorrect. You should not assign a viewController to a delegate.

splitViewController.delegate = detailViewController;

You will also not require this line of code:

[controllers replaceObjectAtIndex:index withObject:splitViewController];

The following line handles that part of assigning delegates.

splitViewController.viewControllers = [NSArray arrayWithObjects:nav, detailViewController, nil];

Also, if you can upload your code, I'll try to correct it and post back the reason and corrected code...

0

精彩评论

暂无评论...
验证码 换一张
取 消