2013-09-25 5 views
0

Я создал одно приложение на основе представления. Я хотел бы наложить UIViewControllers по мере необходимости, например, как модальное представление, где, если какие-то значения заполнены, загрузите следующее представление, пока не сделаете что-то там, и вы можете вернуться.загрузить UIViewController view over singleViewController style app

Это код, у меня есть

- (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

Также я предполагаю у вас немного некорректная архитектура (может быть, я ошибаюсь).

Давайте представим, у вас есть firstViewController, какой метод -viewDidAppear вы представить getProListViewController

Не думаете ли вы, что представление промежуточного 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) 
} 

И вы не сталкивались с вопросом в начале