2013-10-11 45 views
1

我有3个UIViewControllers,我希望能够过渡和前进,但没有任何特定的顺序与任何类型的navigationcontroller。没有导航控制器的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

检查RootViewController的类。例如:'if([self.window.rootViewController isKindOfClass:[CurrentProjectListViewController class]]){// Your Code}' – Roshit

+0

@Roshit我不确定你的意思?你认为我可以在UIViewController中按下按钮时使用类似的代码吗?如果是这样的话,我如何从memeory中删除旧视图? – HurkNburkS

回答

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 - 您可以使用隐藏属性。

相关问题