回答

2

我想在切换视图时替换窗口上的根视图控制器。

例如在我的应用程序中,我先显示一个加载屏幕,然后将视图切换到登录屏幕。

要做到这一点,你需要你的应用程序委托的引用,那么你可以访问该窗口属性和更换根视图控制器:在appdelgate

AppDelegate *appDelegate = [[UIApplication sharedApplication] delegate]; 
LoginViewController *loginVC = [[LoginViewController alloc] init];    
appDelegate.window.rootViewController = loginVC; 
+0

intrest,但在ios 5我得到错误,当我尝试使用您的答案的代码块的第一行 – 2012-04-25 09:19:25

+0

用您的应用程序委托文件的名称替换MyAppDelegate。 MyAppDelegate是我的文件的名称,你的将是不同的 – 2012-04-25 09:25:42

+0

新项目的默认称为AppDelegate。我已经更新了我的代码块 – 2012-04-25 09:26:48

0

点击here。这个链接是关于如何创建导航控制器你想要的。我在这个链接中编写了代码。我希望这会对你有所帮助。

+0

我不想在导航控制器中的第一个视图RootViewController的 – 2012-04-25 09:13:12

1

在你simpleViewController:

- (IBAction) yourButtonAction:(id)sender 
{ 
    UIViewController *Vc = [[theViewControllerYouWantToShow alloc]init]; 
    UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:Vc]; 
    [self presentModalViewController:nav animated:YES]; 
} 

编辑:

您有三个选项,以显示您的viewController内容:上面使用presentModalViewController:

    1. 为例

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

    3.or如果你简单的ViewController是导航根的viewController你可以把其他viewControllers它的导航堆栈。

  • +0

    我不使用什么presentModelviewController,因为我需要做一些更多的过程和我的应用程序需要改变viewControllers很多时候 – 2012-04-25 08:49:36

    +0

    好的向我解释你想要做什么? – 2012-04-25 09:18:09

    +0

    我第一次在该viewController的视图呈现简单的viewController我有三个按钮点击按钮我想加载navigationViewController或TabBarViewController – 2012-04-25 09:22:00

    1

    在appdelegate.h

    @property (strong, nonatomic) id<UIApplicationDelegate>delegate; 
    

    。 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]; 
    } 
    
    相关问题