2012-01-11 67 views
1

我有兩個頁面加載在開始,登錄頁面和註冊頁面。註冊頁面在登錄頁面後面。UINavigationController使一個視圖模態

在登錄頁面有一個按鈕可以調出演示頁面,所以我需要導航控制器登錄頁面,以便在演示頁面調出時可以得到「返回」按鈕。

所以我設置導航控制器中的AppDelegate

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{ 
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; 


    LoginViewController *_loginViewController = [[LoginViewController alloc] init]; 


    RegisterViewController *_registerViewController = [[RegisterViewController alloc] init]; 
    [self.window addSubview:_registerViewController.view]; 
    [_registerViewController release]; 

    [self.window addSubview:_loginViewController.view]; 


    navController = [[UINavigationController alloc] initWithRootViewController:_loginViewController]; 
    [self.window addSubview:self.navController.view]; 
    [_loginViewController release]; 
    [self.window makeKeyAndVisible]; 
    return YES; 
} 

這可以使按鈕登錄頁面做工不錯,但是當搬出登錄頁面,並顯示註冊頁面,註冊頁面無法響應用戶操作。

代碼有什麼問題?


編輯:

我不好,沒說清楚。當我說登錄頁面「移出」時,它並不完全移出。屏幕上還剩下五分之一。然後出現註冊頁面。在這種情況下,我在AppDelegate中添加登錄頁面和註冊頁面。另外,我不使用XIB ...

@dasblinkenlight和@ hiren443?

回答

3

我認爲這個問題是您要添加兩個控制器的意見,以window,也錯誤地使用導航控制器。

這裏是你應該做的事情,而不是:

  • 創建導航控制器首先
  • 推的註冊頁面,然後在登錄頁面到控制器
  • 隱藏[返回]按鈕的登錄頁面
  • 添加導航控制器作爲主窗口

的唯一子視圖在續滾動登錄頁面,呼叫導航控制器的popToRootViewControllerAnimated顯示註冊頁面。

+0

我想這是正確的做法。 +1夥計 – 2012-01-11 12:43:25

2

第一添加登錄

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{ 
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; 


    LoginViewController *_loginViewController = [[LoginViewController alloc] init]; 
    navController = [[UINavigationController alloc] initWithRootViewController:_loginViewController]; 
    [self.window addSubview:self.navController.view]; 
    [_loginViewController release]; 
    [self.window makeKeyAndVisible]; 
    return YES; 
} 

在登錄頁面添加按鈕,操作方法

-(IBAction)DemoBtnPressed 
{ 
    RegisterViewController *_registerViewController = [[RegisterViewController alloc] init]; 
    [self.navigationController pushViewController:_registerViewController animated:YES]; 

} 
0

嗯,我知道了。我的方法是:嘗試移動登錄頁面(不移出,屏幕左側1/5)以顯示註冊頁面,而不移動登錄頁面,但移動登錄頁面導航控制器。

但你們的評論確實有幫助!不管怎麼說,還是要謝謝你!!!

相關問題