失去导航控制器如何打开另一个视图

问题描述:

我目前显示的UIViewController这样的:失去导航控制器如何打开另一个视图

AlaramDetail *alaramDetail = [[AlaramDetail alloc] init]; 
alaramDetail.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal; 
[self presentModalViewController:alaramDetail animated:YES]; 
[alaramDetail release]; 

一切运作良好,但AlarmDetail打开时我失去了导航控制器。我想从alarmDetail打开另一个视图,我该怎么做。 和我如何返回到我以前的导航控制器,如果我想? Thx

您需要声明一个新的导航控制器,添加您的视图控制器,然后呈现模态的导航控制器。

AlaramDetail *alaramDetail = [[AlaramDetail alloc] init]; 

UINavigationController *newNavigation = [[UINavigationController alloc] initWithRootViewController:alaramDetail]; 
[alaramDetail release]; 
newNavigation.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal; 

[self presentModalViewController:newNavigation animated:YES]; 
[newNavigation release]; 

编辑:

要关闭模式的看法:

  1. 简单的办法:在一些你打电话解雇法的模态视图只需添加:

    [自我。 navigationController dismissModalViewControllerAnimated:YES];

  2. 更复杂的方法:在模态视图上实现和委托协议,并使视图控制器将模态视图呈现给它的委托。并在委托方法中取消模态视图。当我需要从模态视图发送数据到呈现它的控制器时,我这样做。

+0

THX Terente约努茨的亚历 – 2011-05-12 10:00:43

+0

嗨,我还有一个问题,我如何返回bac k我以前的导航控制器,如果我想要? – 2011-05-12 10:53:08

+0

你需要关闭modalView。我将编辑我的文章 – 2011-05-12 10:54:08

如果您正在使用导航控制器,它应该是这样的:

AlaramDetail *alaramDetail = [[AlaramDetail alloc] init]; 
[self.navigationController pushViewController:alaramDetail animated:YES]; 
[alaramDetail release]; 

试试这个,

`[self.navigationController presentModalViewController:alaramDetail animated:YES]`; 

代替

[self presentModalViewController:alaramDetail animated:YES];