Iphone 在选项卡栏控制器类型应用程序中切换UIViewController

Iphone 在选项卡栏控制器类型应用程序中切换UIViewController,iphone,uiviewcontroller,uinavigationcontroller,uitabbarcontroller,Iphone,Uiviewcontroller,Uinavigationcontroller,Uitabbarcontroller,请原谅这个简单的问题,但我正在努力掌握iPhone的导航功能 因此,我有一个选项卡栏控制器类型的应用程序,带有UITabBar和3个UITabBarItems。我有第一个标签栏项目加载一种“主屏幕/欢迎”,在主屏幕上,有一个按钮。当用户单击该按钮时,我想打开另一个UIViewController(LoginViewController)以允许用户登录 我正在尝试切换UIViewController,当他们成功登录后,我想更改TabBarItems 这是连接到第一个TabBarItem的ViewC

请原谅这个简单的问题,但我正在努力掌握iPhone的导航功能

因此,我有一个选项卡栏控制器类型的应用程序,带有UITabBar和3个UITabBarItems。我有第一个标签栏项目加载一种“主屏幕/欢迎”,在主屏幕上,有一个按钮。当用户单击该按钮时,我想打开另一个UIViewController(LoginViewController)以允许用户登录

我正在尝试切换UIViewController,当他们成功登录后,我想更改TabBarItems

这是连接到第一个TabBarItem的ViewController上的.m文件中的代码:

#import "LaunchViewViewController.h"
#import "LoginViewViewController.h"

@implementation LaunchViewViewController

@synthesize myLoginViewViewController;

- (IBAction)cmdRSVP_Click:(id)sender {

 //Try #1
 //[self addSubview:myLoginViewViewController.view];

 //Try #2
 //[[self navigationController] pushViewController:myLoginViewViewController animated:YES];

 //Try #3
 //LoginViewViewController *myLoginViewViewController2 = [[LoginViewViewController alloc] initWithNibName:@"LoginView" bundle:[NSBundle mainBundle]];
 //[self.navigationController pushViewController:myLoginViewViewController2 animated:YES];
 //[myLoginViewViewController2 release];
 //myLoginViewViewController2 = nil;

 //Try #4
 //This just changes my screen to all White (expect the TabBarNavigationController
 //[self.view removeFromSuperview];
 //[self.view insertSubview:self.myLoginViewViewController.view atIndex:0];


 // This displays without issue.
 [self displayMessage:@"RSVP Clicked":@"Switch to Login View"]; }
正如你们所看到的,我尝试了4种不同的方法,我在不同的教程中看到过

在try 1、2、3中:没有发生任何事情(没有崩溃或异常),但仍然显示警报消息框

在try 4中,选项卡栏控制器上方的屏幕区域变为白色,并显示警报消息,但它从不显示“我的另一个ViewController”

任何能让我走上正轨的帮助都会很好

提前谢谢!
杰森

根据我问的另一个问题,我能够找到答案

问题是我需要将UINavigation控制器连接到选项卡栏项(而不是UIViewController)。UIViewController随后将成为UINavigation控制器的RootViewController,这将允许我使用pushViewController和popViewController方法

注意:这是帮助我解决此问题的问题的链接:


Jason

试试2和3是正确的方法。主屏幕是否在UINavigationController中?是的,它在选项卡栏控制器中。在这种情况下,我需要做些不同的事情吗?这确实是让我了解发生了什么的链接: