3

我在視圖導航中遇到問題。UINavigation:如何從呈現的模態視圖推送視圖

我有VC說,登錄,這我是從另一個VC調用諸如:在登錄VC

- (IBAction) btnAction 
{   Login * login = [[Login alloc] init]; 

     [self.navigationController pushViewController:login animated:YES]; 
} 

有兩個按鈕說,註冊和忘記密碼,也相應地調用另一個VC,RegisterVC和ForgetPassVC 。

- (IBAction) btnRegisterNow : (id) sender 
{ 

    aRegister = [[Register alloc] initWithNibName:@"Register" bundle:nil]; 
    [self.navigationController pushViewController:aRegister animated:YES]; 
} 

- (IBAction) btnForgotPassword : (id) sender 
{ 
    forgotPassword = [[ForgotPasswd alloc] initWithNibName:@"ForgotPasswd" bundle:nil]; 
    [self.navigationController pushViewController:forgotPassword animated:YES]; 
} 

我的問題:

當我打電話登錄由[self.navigationController pushViewController:login animated:YES];每一件事情正常工作。

但是在一些VC中我需要顯示登錄頁面爲[self presentModalViewController:login animated:YES];這時兩個按鈕Register and Forget Password不起作用。在按鈕上單擊沒有反應。

什麼問題?我認爲我已經添加登錄作爲模式視圖bocz不是pushViewConterller?如果是的話,我該如何完成這項任務?

希望問題很明確。

謝謝...

+0

顯示了兩個按鈕,並且您有一個可見的導航欄? – PeyloW

+0

沒有可見的導航條 – Maulik

+0

然後Jilouc有你的答案。 – PeyloW

回答

5

當您以模態方式呈現您的控制器時,它們不在導航控制器中。你應該寫

UINavigationViewController *nvc = [[UINavigationViewController alloc] initWithRootViewController:login]; 
[login release]; 
[self presentModalViewController:nvc animated:YES]; 
[nvc release]; 
+0

所以我必須在上面的代碼中使用[self presentModalViewController:login animated:YES]; ?? – Maulik

+0

@Maulik是的,這將包裹你的'登錄'控制器在導航控制器。 – Jilouc

+0

是的,我做了...但設計受到干擾... – Maulik

4

我想你應該推忘記密碼&註冊的風險投資也爲模態控制器。你嘗試過嗎?

0

當你在做 [自我presentModalViewController:登錄動畫:是];在這種情況下,你的視圖控制器得到通過,現在當你嘗試實現[self.navigationController pushViewController:forgotPassword animated:YES];它沒有工作,因爲你沒有導航控制器。

是否需要將您的登錄信息顯示爲模態視圖。 然後用這個代碼: -

- (IBAction) btnAction 
{ 
     Login *login=[[[Login alloc]initWithNibName:@"Login" bundle:nil]autorelease]; 
     UINavigationController *navController = [[[UINavigationController alloc] initWithRootViewController:login]autorelease]; 
     [[self navigationController] presentModalViewController:navController animated:YES]; 

    } 

現在你忘了,並註冊BTN動作會打電話,會導航到該相應的頁面。

0

將您的登錄視圖控制器作爲根控制器存在導航控制器。請檢查以下代碼。

UINavigationController * navController = [UINavigationController alloc] initWithRootController:loginController]; [self presentModalViewController:navController]; [navController release];