在标签栏控制器类型应用程序中切换 UIViewController
Posted
技术标签:
【中文标题】在标签栏控制器类型应用程序中切换 UIViewController【英文标题】:Switch UIViewController in a Tab Bar Controller Type Application 【发布时间】: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 中? 是的,它在标签栏控制器中。在这种情况下我必须做一些不同的事情吗? 【参考方案1】:我能够根据我提出的另一个问题弄清楚这一点。
问题是我需要将 UINavigation 控制器连接到选项卡栏项(而不是 UIViewController)。 UIViewController 将成为 UINavigation 控制器的 RootViewController,这将允许我使用 pushViewController 和 popViewController 方法。
注意:这是帮助我解决此问题的问题的链接: TableView Does NOT Switch to Detail View When Connected to Tab Bar Controller
杰森
【讨论】:
这真的是让我了解发生了什么的链接:***.com/questions/284321/…以上是关于在标签栏控制器类型应用程序中切换 UIViewController的主要内容,如果未能解决你的问题,请参考以下文章