2013-10-08 94 views
0

我在我的应用程序中有3个视图。如何在没有NavgationController的情况下打开UIViewControllers和Keepstate

我想知道如何正确打开和加载点击按钮时的意见。

目前按钮时从第一视图点击我开这样的

[self dismissViewControllerAnimated:NO completion:nil]; 

    getPLViewController = [[GetPLViewController alloc] initWithNibName:@"GetPLViewController" bundle:nil]; 

    UIWindow* keyWindow= [[UIApplication sharedApplication] keyWindow]; 
    [keyWindow addSubview:getProjectListViewController.view]; 

    [self presentViewController:getPLViewController animated:NO completion:nil]; 

而现在的第二视图,第二视图打开我开这样的

currentPLViewController = [[CurrentPLViewController alloc] initWithNibName:@"CurrentPLViewController" bundle:nil]; 


UIWindow* keyWindow= [[UIApplication sharedApplication] keyWindow]; 
[keyWindow addSubview: currentPLViewController.view]; 

[self presentViewController:currentPLViewController animated:NO completion:nil]; 

我第三不知道这是否正确了,因为如果我在前面的视图加载完成之前尝试加载视图,或者沿着这些行加载了视图,我一直遇到视图出现问题。

这是我怎么回去从视图 - 控制

[self dismissViewControllerAnimated:NO completion:nil]; 

所以我想知道这是做这件事的正确方法吗?或者,还有更好的方法?

任何帮助,将不胜感激。

回答

1

为什么你不在你的根视图上使用UINavigationController?

您可以隐藏导航栏,它会更干净,并且它将与Apple准则相匹配以推送视图。

假设您使用XIB。 当您从AppDelegate添加您的第一个视图,添加一个UINavigationController和隐藏这一个:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{ 
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; 
    RootViewController *rootViewController = [[RootViewController alloc] initWithNibName:@"RootViewController" bundle:nil]; 
    UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:rootViewController]; 
    [navigationController setNavigationBarHidden:YES]; 
    self.window.rootViewController = navigationController; 
    [self.window makeKeyAndVisible]; 
    return YES; 
} 

下一页您RootViewController(第一视角),你添加一个按钮并按下SecondViewController

- (IBAction)displaySecondView 
{ 
    SecondViewController *secondViewController = [[SecondViewController alloc] initWithNibName:@"SecondViewController" bundle:nil]; 
    [self.navigationController pushViewController:secondViewController animated:YES]; 
} 

SecondViewController推出第三张同样:

- (IBAction)displayThirdView 
{ 
    ThirdViewController *thirdViewController = [[ThirdViewController alloc] initWithNibName:@"ThirdViewController" bundle:nil]; 
    [self.navigationController thirdViewController animated:YES]; 
} 

and a ac以回到以前的观点:

- (IBAction)back 
{ 
    [self.navigationController popViewControllerAnimated:YES]; 
} 
+0

好吧说瞬间我在第一视图,但我想跳转到第三视图? – HurkNburkS

+0

所以在你的第一个视图中添加' - (IBAction)displayThirdView') –

+0

好的很酷我想知道这一切,我会让你知道我是如何得到的:) – HurkNburkS

相关问题