1

我想从一个xib到另一个,我使用TabBar。 当我从xib移动到xib与PresentModalViewController我失去了TabBar。PresentModalViewController不显示TabBar

当我用这种方式,它失败(如力接近的android):

FirstViewController *fvc = [[FirstViewController alloc]initWithNibName:@"FirstViewController" bundle:nil]; 
    [fvc setModalTransitionStyle:UIModalTransitionStyleFlipHorizontal]; 
    fvc.userSelectedLatitude = saveLatitude; 
    fvc.userSelectedLongitude = saveLongtitude; 
    UITabBarController *tabControl = [[UITabBarController alloc] initWithNibName:fvc bundle:nil]; 
    [self presentModalViewController:tabControl animated:NO]; 

当我使用:

UITabBarController *tabControl = [[UITabBarController alloc] initWithNibName:@"FirstViewController" bundle:nil]; 

我得到黑屏的TabBar。

因为这一切都失败我猜这不是正确的方法。 那么,正确的做法是什么?

回答

2

上述崩溃的代码,因为你试图传递视图控制器,而不是在initWithNibName:bundle:方法一个NSString对象。

做到这一点的方式取决于你真正想做什么。你想在带有或没有tabBar?的modalViewController中展示xib,或者只是以模态方式呈现视图控制器?

UPDATE:

精细,你必须先创建与每一个的TabBar按钮(就像你一直在做,直至现在)你的视图控制器,之后,这些视图控制器添加到您的TabBar,然后呈现tabBarController模态。像这样:

FirstViewController *fvc = [[FirstViewController alloc] initWithNibName:@"FirstViewController" bundle:nil]; 
fvc.userSelectedLatitude = saveLatitude; 
fvc.userSelectedLongitude = saveLongtitude; 

UITabBarController *tabControl = [[UITabBarController alloc] init]; 
[tabControl setViewControllers:[NSArray arrayWithObjects:fvc, nil]]; 
[tabControl setModalTransitionStyle:UIModalTransitionStyleFlipHorizontal]; 
[self presentModalViewController:tabControl animated:NO]; 

我认为这段代码应该可以工作。所以,试试看,并告诉我们是否出现问题。

+0

我想把它与标签栏 – 2013-02-19 08:54:25

+0

看到答案更新 – thxou 2013-02-19 11:29:42

+0

它把我带到正确的地方,但只显示正确的形象与特定的标签栏;没有标题,也没有其他按钮。 编辑:好的,我加了控制器的其余部分,现在好了,谢谢! – 2013-02-19 17:09:39

1

使用UITabBarController,不需要手动呈现viewControllers或调用代码来切换视图。这是为你处理的。

您需要做的就是设置UITabBarController的viewControllers属性。像这样:

[tabBarController setViewControllers:[NSArray arrayWithObjects:view1, view2, nil]]; 
+0

我把它放在我的AppDelegate中: self.tabBarController = [[UITabBarController alloc] init]; self.tabBarController.viewControllers = [NSArray arrayWithObjects:viewController1,viewController2,viewController3,viewController4,nil]; self.window.rootViewController = self.tabBarController; [self.window makeKeyAndVisible]; 我不明白你,对不起。 – 2013-02-19 07:52:38

+0

我认为你想从tab1中的viewController到tab2中的viewController。 – 2013-02-19 07:58:08

+0

我想从viewController3去viewController1。 – 2013-02-19 08:00:50

相关问题