【发布时间】:2010-08-09 04:27:17
【问题描述】:
请原谅这个简单的问题,但我正在努力掌握 iPhone 中的导航。
所以,我有一个带有 UITabBar 和 3 个 UITabBarItems 的标签栏控制器类型的应用程序。我有第一个标签栏项目加载一种“主屏幕/欢迎”,在主屏幕上有一个按钮。当用户单击按钮时,我想打开一个不同的 UIViewController (LoginViewViewController) 以允许该人登录。
我基本上是在尝试切换 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 种不同的方法,我在各种教程中看到过。
在尝试 1、2、3 中:没有任何反应(没有崩溃或异常),但仍显示警报消息框。
在尝试 4 中,Tab Bar Controller 上方的屏幕区域变为白色并显示警报消息,但它从未显示我的另一个 ViewController。
任何帮助我走上正轨都会很棒!!!
提前致谢! 杰森
【问题讨论】:
-
尝试 2 和 3 是正确的方法。您的主屏幕是否在 UINavigationController 中?
-
是的,它在标签栏控制器中。在这种情况下我必须做一些不同的事情吗?
标签: iphone uiviewcontroller uinavigationcontroller uitabbarcontroller