2010-03-25 236 views
1

我有這個工作,但我不認爲它工作正常,所以我只想得到您的反饋。我試圖顯示一個有兩個按鈕的屏幕 - 一個將您帶到登錄屏幕並允許您註冊的屏幕。如何做登錄屏幕?

我在appDelegate中測試它們是否已登錄,如果它們不是,我正在顯示signLogIN視圖。 (我在AppDelegate dealloc中發佈 - 如果我在這裏發佈,它會在他們選擇登錄或註冊時爆炸)。

我也嘗試這樣做: -

[mainAPPTabBarController presentModalViewController:signLogIN animated:NO]; 

但它並沒有區別。

奇怪的是我可以看到LoginOrSignUPViewController中的dealloc被直接調用 - 爲什麼?我無法分辨它從哪裏被調用。

從LoginOrSignUPViewController我那麼做顯示的登錄畫面: -

[self retainCount] = 1 

LoginViewController *logINVC = [[LoginViewController alloc] initWithNibName:@"LoginViewController" bundle:nil]; 

logINVC.modalTransitionStyle = UIModalTransitionStyleCrossDissolve; 
logINVC.delegate = self; 
logINVC.tabBarController = self.tabBarController; 
[self presentModalViewController:logINVC animated:YES]; 
[logINVC release]; 

now [self retainCount] = 3 = why did it go to three???? 

正如你可以看到有一個調用回signLogIn視圖關閉視圖如下委託: -

[self retainCount] = 3 
[mainWindow bringSubviewToFront:tabBarController.view]; 
tabBarController.selectedIndex = 0; 

[self.view removeFromSuperview]; 
[self dismissModalViewControllerAnimated:NO]; 
[self release]; 

[self retainCount] = 3 -- still 3 it never goes away 

所以這裏是我的主要問題LoginOrSignUPViewController永遠不會消失它只是坐在我的主視圖背後。唯一有所不同的是[mainWindow bringSubViewToFront。有沒有人有任何想法如何使LoginOrSignUPViewController消失?

非常感謝 謝麗爾

回答

0

你有沒有在您的視圖控制器的viewDidLoad嘗試這樣做:

LoginOrSignUPViewController *signLogIN = [[LoginOrSignUPViewController alloc] init]; 
[self presentModalViewController:signLogIN animated:NO]; 
[signLogIn release]; 
+0

我不是從視圖控制器,但是從我的appDelegate調用此。也許我應該從視圖控制器調用它,但我擔心第一個視圖控制器進入我的應用程序可能會改變,我會被抓到。我認爲從appDelegate加載它是最安全和最乾淨的。 – Cheryl 2010-03-25 15:51:17

+0

由於這個VC只在註冊/登錄過期時被調用,所以最好的做法可能是將它模擬地顯示爲諸如「主視圖控制器」之類的東西,而不是將其設置爲您的窗口視圖。您可以這樣做,以便用戶在下面看不到視圖控制器,直到他們已成功解除(通過登錄或註冊)模式。 – christo16 2010-03-25 16:35:45