我首先喜欢加载显示一些选项的简单 viewController,然后单击某个按钮,我想根据按钮单击加载 navigationController 或 tabbarController。我怎样才能做到这一点 ?
问问题
1807 次
3 回答
2
当我想切换视图时,我替换了窗口上的根视图控制器。
例如,在我的应用程序中,我首先显示加载屏幕,然后将视图切换到登录屏幕。
为此,您需要引用您的应用程序委托,然后您可以访问窗口属性并替换根视图控制器:
AppDelegate *appDelegate = [[UIApplication sharedApplication] delegate];
LoginViewController *loginVC = [[LoginViewController alloc] init];
appDelegate.window.rootViewController = loginVC;
于 2012-04-25T09:15:22.310 回答
1
在 appdelegate.h
@property (strong, nonatomic) id<UIApplicationDelegate>delegate;
在 appdelgate.m
@synthesize delegate;
在我的第一个 viewController 的 .h 文件中
AppDelegate *myappDelegate;
-(IBAction)start:(id)sender;
在我的第一个 viewController 的 .m 文件中
-(IBAction)start:(id)sender
{
NSLog(@"Start Button is clicked");
mvc = [[MasterViewController alloc]initWithNibName:@"MasterViewController" bundle:nil];
myappDelegate = [[UIApplication sharedApplication]delegate];
myappDelegate.navigationController = [[UINavigationController alloc]initWithRootViewController:mvc];
myappDelegate.window.rootViewController = myappDelegate.navigationController;
[myappDelegate.window makeKeyAndVisible];
}
于 2012-04-25T10:49:58.623 回答
1
在您的 simpleViewController 中:
- (IBAction) yourButtonAction:(id)sender
{
UIViewController *Vc = [[theViewControllerYouWantToShow alloc]init];
UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:Vc];
[self presentModalViewController:nav animated:YES];
}
编辑 :
你有三个选项来显示你的 viewController 内容:
如上例使用
presentModalViewController:
将 viewController 视图作为子视图添加到当前 viewController。在你的情况下:
[simpleViewController.view addSubView:nav.view];
3.或者,如果您的简单 ViewController 是导航根 viewController,您可以将其他 viewController 推送到其导航堆栈。
于 2012-04-25T08:45:32.410 回答