2013-09-25 47 views
0

我已經創建了一個基於單個視圖的應用程序。我想覆蓋UIViewControllers,因爲我需要它們,例如像一個模態視圖的東西,如果一些值填充,然後加載下一個視圖,直到你做了什麼,你可以回來。通過singleViewController風格應用加載UIViewController視圖

這是我的代碼有

- (void) viewWillAppear:(BOOL)animated { 

    NSMutableDictionary *tempPrefs = [prefsController readPrefs]; 
    NSString *tempName = [tempPrefs objectForKey:@"Name"]; 
    NSString *tempProduct = [tempPrefs objectForKey:@"Product"]; 


// usedbefore so skip first view (first view == login view 
    if ((tempName.length != 0) && (tempProduct.length != 0)) { 
     // you have values, enter new room without checking 
     [self loadGetProListViewController]; 
    } 
} 

- (void) loadGetProListViewController { 

    [self dismissViewControllerAnimated:NO completion:nil]; 
    getProListViewController = [[GetProListViewController alloc] initWithNibName:@"GetProListViewController" bundle:nil]; 
     [self presentViewController:getProListViewController animated:YES completion:nil]; 

} 

然而,一旦這種方法已經達到了其執行,但什麼也沒發生..

如果有人能告訴我如何創建模式viewControllers或一些描述說將不勝感激。

+0

面臨着您的問題您是否嘗試過viewDidAppear enstead willAppear? – Injectios

+0

不,我突出了它,viewwillappear正在工作..我想在視圖加載之前執行此操作。這種方式用戶可能永遠不需要在加載應用程序時再次看到日誌。 – HurkNburkS

+0

如果編譯器在那裏,這並不意味着它會工作 – Injectios

回答

-1

試試這個

[self presentModalViewController: getProListViewController animated:YES]; 

,而不是你的presentviewcontroller

[self presentViewController:getProListViewController animated:YES completion:nil]; 
+1

是不是不贊成?我建議使用UINavigationController –

+0

我不想要UInavigationController作爲所有的意見是模態 – HurkNburkS

0

首先,你應該知道的UIViewController lifecycle有你能夠呈現不同UIViewController

而且我猜其中一個想法你有一些不正確的架構(也許我錯了)。

讓我們想象一下該款-viewDidAppear方法,你提出getProListViewController

難道你不認爲呈現中間firstViewController是奇數firstViewController?

我想你會把你的if子句升級。 F.e:

/ usedbefore so skip first view (first view == login view 
if ((tempName.length != 0) && (tempProduct.length != 0)) { 
    // present your getProListViewController 
} else { 
    // present your "FirstViewController" (login or whatever) 
} 

而且你還沒有在一開始