iphone-带NavigationController的Tabbar应用程序,不带MainWindow.xib

iphone-带NavigationController的Tabbar应用程序,不带MainWindow.xib,iphone,tabbar,navigationcontroller,Iphone,Tabbar,Navigationcontroller,大家好 我对iPhone开发相当陌生。我已经学习了一些教程并创建了一个tabbar应用程序。以下是appdelegate实现中的代码: self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; UIViewController *viewController1 = [[ViewController1 alloc] initWithNibName:@"ViewController1" bundle:

大家好

我对iPhone开发相当陌生。我已经学习了一些教程并创建了一个tabbar应用程序。以下是appdelegate实现中的代码:

self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
UIViewController *viewController1 = [[ViewController1 alloc] initWithNibName:@"ViewController1" bundle:nil];
UIViewController *viewController2 = [[ViewController2 alloc] initWithNibName:@"ViewController2" bundle:nil];

self.tabBarController = [[UITabBarController alloc] init];
self.tabBarController.viewControllers = [NSArray arrayWithObjects:viewController1, viewController2, nil];

self.window.rootViewController = self.tabBarController;
[self.window makeKeyAndVisible];
然后在每个控制器实现中设置选项卡的标题和图像

我的问题是,例如,在我的viewController1中,我需要导航到viewController3,当我使用presentModalViewController方法将viewController3推入时,底部的选项卡栏将消失

当我尝试使用app委托引用我的tabBarController,并使用tabBarController.navigationController pushViewController方法时,我的viewController3没有被推送,似乎什么也没有发生

我试着学习一些教程,但都需要将navigationcontroller拖到MainWindow.xib中,在xcode 4中,MainWindow.xib不再存在。如何从代码中创建navigationcontroller,以便应用程序可以在不同视图之间导航而不隐藏选项卡栏

非常感谢您的任何评论!提前谢谢


:)

我不是很确定,但是你试过这个吗???实际上我很快就要使用XCode 4了,我仍然在使用3.2.8版本:-

WebViewController *viewController = [[WebViewController alloc]initWithNibName:@"WebViewController" bundle:nil];
    viewController.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
    [self presentModalViewController:viewController animated:YES];
    [viewController release];
请参见此页,当您导航到第三个屏幕时,选项卡栏将被删除,您必须提供导航栏才能返回


希望有帮助……)

我不是很确定,但是你试过这个吗???实际上我很快就要使用XCode 4了,我仍然在使用3.2.8版本:-

WebViewController *viewController = [[WebViewController alloc]initWithNibName:@"WebViewController" bundle:nil];
    viewController.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
    [self presentModalViewController:viewController animated:YES];
    [viewController release];
请参见此页,当您导航到第三个屏幕时,选项卡栏将被删除,您必须提供导航栏才能返回


希望有帮助……)

如果要使用导航控制器,则需要创建导航控制器。因为您没有使用XIB,所以必须手动创建它

由于您希望在显示viewController3时选项卡栏保持可见,因此需要使导航控制器成为选项卡栏控制器的子控制器

UIViewController *viewController1 = [[ViewController1 alloc] initWithNibName:@"ViewController1" bundle:nil];
UINavigationController *navController1 = [[UINavigationController alloc] initWithRootViewController:viewController1];
UIViewController *viewController2 = [[ViewController2 alloc] initWithNibName:@"ViewController2" bundle:nil];

self.tabBarController = [[UITabBarController alloc] init];
self.tabBarController.viewControllers = [NSArray arrayWithObjects:
    navController1,
    viewController2,
    nil];
然后,如果要显示viewController3,请执行以下操作:

// in some method of viewController1
[self.navigationController pushViewController:viewController3 animated:YES];

如果要使用导航控制器,则需要创建导航控制器。因为您没有使用XIB,所以必须手动创建它

由于您希望在显示viewController3时选项卡栏保持可见,因此需要使导航控制器成为选项卡栏控制器的子控制器

UIViewController *viewController1 = [[ViewController1 alloc] initWithNibName:@"ViewController1" bundle:nil];
UINavigationController *navController1 = [[UINavigationController alloc] initWithRootViewController:viewController1];
UIViewController *viewController2 = [[ViewController2 alloc] initWithNibName:@"ViewController2" bundle:nil];

self.tabBarController = [[UITabBarController alloc] init];
self.tabBarController.viewControllers = [NSArray arrayWithObjects:
    navController1,
    viewController2,
    nil];
然后,如果要显示viewController3,请执行以下操作:

// in some method of viewController1
[self.navigationController pushViewController:viewController3 animated:YES];

的确,当您导航到第三个viewController时,选项卡栏将被删除。这就是为什么您必须为返回选项卡栏视图提供导航。实际上,我正试图告诉您尝试PresentModalViewController而不是PushViewController…:)但是当应用程序导航到viewController3时,我需要选项卡栏可见。一定有办法,但我就是想不出来…这是真的,当你导航到第三个viewController时,选项卡栏将被删除。这就是为什么您必须为返回选项卡栏视图提供导航。实际上,我正试图告诉您尝试PresentModalViewController而不是PushViewController…:)但是当应用程序导航到viewController3时,我需要选项卡栏可见。一定有办法,但我就是想不出来。。。