没有导航控制器的UIViewControllers之间的转换

时间:2013-10-11 23:45:38

标签: ios objective-c uiviewcontroller uinavigationcontroller

我有3个UIViewControllers,我希望能够在任何类型的导航控制器中前后转换而不是任何特定的顺序。

到目前为止,我已经在我的委托中设置了一个方法,我可以记住,如果在mutitask栏中从内存中删除了应用程序,那么我最后一个视图。

看起来像这样

if (([projectListBoolString isEqualToString:@"T"]) && ([installsBoolString isEqualToString:@"F"]) && ([finishinBoolString isEqualToString:@"F"])) {
        self.getProjectListViewController = [[GetProjectListViewController alloc] initWithNibName:@"GetProjectListViewController" bundle:nil];
        self.window.rootViewController = self.getProjectListViewController;
        [self.window makeKeyAndVisible];
    }
    else if (([projectListBoolString isEqualToString:@"T"]) && ([installsBoolString isEqualToString:@"T"]) && ([finishinBoolString isEqualToString:@"T"])) {
        self.currentProjectListViewController = [[CurrentProjectListViewController alloc] initWithNibName:@"CurrentProjectListViewController" bundle:nil];
        self.window.rootViewController = self.currentProjectListViewController;
        [self.window makeKeyAndVisible];
    }
    else {
        self.viewController = [[ViewController alloc] initWithNibName:@"ViewController" bundle:nil];
        self.window.rootViewController = self.viewController;
        [self.window makeKeyAndVisible];
    }

当我在应用程序中时,我想知道如何从一个视图跳转到另一个视图,确保只有一个视图在内存/已加载。

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

if(getProjectListViewController == nil)
   getProjectListViewController  = new GetProjectListViewController ();
if(viewController.view.superview!=nil){
   viewController.view.removefromSuperView();
   window.addsubview(getProjectListViewController.view);
} else {
   getProjectListViewController.view.removeFromSuperView();
   window.addsubview(viewController.view);
}

根据需要为两个以上的视图添加if / else-if语句。如果您仍然觉得更容易,也可以继续使用没有界面组件的navController - 您可以使用隐藏属性。