我有這個工作,但我不認爲它工作正常,所以我只想得到您的反饋。我試圖顯示一個有兩個按鈕的屏幕 - 一個將您帶到登錄屏幕並允許您註冊的屏幕。如何做登錄屏幕?
我在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消失?
非常感謝 謝麗爾
我不是從視圖控制器,但是從我的appDelegate調用此。也許我應該從視圖控制器調用它,但我擔心第一個視圖控制器進入我的應用程序可能會改變,我會被抓到。我認爲從appDelegate加載它是最安全和最乾淨的。 – Cheryl 2010-03-25 15:51:17
由於這個VC只在註冊/登錄過期時被調用,所以最好的做法可能是將它模擬地顯示爲諸如「主視圖控制器」之類的東西,而不是將其設置爲您的窗口視圖。您可以這樣做,以便用戶在下面看不到視圖控制器,直到他們已成功解除(通過登錄或註冊)模式。 – christo16 2010-03-25 16:35:45