2011-05-12 63 views
2

我目前顯示的UIViewController這樣的:失去導航控制器如何打開另一個視圖

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

一切運作良好,但AlarmDetail打開時我失去了導航控制器。我想從alarmDetail打開另一個視圖,我該怎麼做。 和我如何返回到我以前的導航控制器,如果我想? Thx

回答

6

您需要聲明一個新的導航控制器,添加您的視圖控制器,然後呈現模態的導航控制器。

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

0

如果您正在使用導航控制器,它應該是這樣的:

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

試試這個,

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

代替

[self presentModalViewController:alaramDetail animated:YES]; 
相關問題