0

我首先喜欢加载显示一些选项的简单 viewController,然后单击某个按钮,我想根据按钮单击加载 navigationController 或 tabbarController。我怎样才能做到这一点 ?

4

3 回答 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 内容:

  1. 如上例使用presentModalViewController:

  2. 将 viewController 视图作为子视图添加到当前 viewController。在你的情况下:[simpleViewController.view addSubView:nav.view];

3.或者,如果您的简单 ViewController 是导航根 viewController,您可以将其他 viewController 推送到其导航堆栈。

于 2012-04-25T08:45:32.410 回答