2013-11-19 6 views
0

У меня проблема, и я не мог понять, что делать.Как представить динамически созданный контроллер вида

в моем приложении - когда логины, есть 4 варианта

1 - показать ему экран приборной панели;

2 - покажите ему экран по умолчанию, если он пришел в ответ (есть параметр для этого, содержащий имя экрана);

3 - показать план изменения плана, если его параметр включен в ответ;

4 - показать экран смены контактов после того, как пользователь устанавливает свой план.

Теперь проблема в том, как перейти к экрану по умолчанию после установки его булавки, так как я не знаю имя экрана (имя контроллера контроллера, так как оно динамическое, исходящее от сервера).

Код

NSLog(@"Default Screen %@", mClient.defaultScreen); 
if([mClient defaultScreen] != (id)[NSNull null] || [mClient defaultScreen].length != 0) { 
    NSLog(@"Going to push default screen : %@", mClient.defaultScreen); 
    [self pushDefaultScreen:mClient.defaultScreen]; 

} else { 

    NSLog(@"Default screen is nil, going to load dashboard"); 
    [mClient setUPProgressHUDForView:self.view withLable:@"Generating Dashboard" andMessage:@"Please Wait.."]; 
    for(UIView *subview in [self.scrollView subviews]) { 
     [subview removeFromSuperview]; 
    } 
    NSLog(@"--> ::: Going to change here"); 
    [self generateDashboard]; 
} 


if(![mClient.showSetPinScreen isEqual:[NSNull null]] && ![mClient.showSetPinScreen isEqualToString:EMPTY_STRING]) { 
    NSLog(@"Parameter showSetPinScreen : %@", mClient.showSetPinScreen); 
    if([mClient.showSetPinScreen isEqualToString:STRING_VALUE_YES]) { 
     NSLog(@"mClient.showSetPinScreen parameter value is Y"); 
     SetPinViewController *changePinViewController = [[SetPinViewController alloc] initWithNibName:@"SetPinViewController" bundle:nil]; 
     changePinViewController.isFromLogin = STRING_VALUE_YES; 
     [self.navigationController pushViewController:changePinViewController animated:YES]; 
    } else { 
     NSLog(@"mClient.showSetPinScreen parameter value is N"); 
    } 

} 


if(![mClient.showCardPlanScreen isEqual:[NSNull null]] && ![mClient.showCardPlanScreen isEqualToString:EMPTY_STRING]) { 
    NSLog(@"Parameter showCardPlanScreen : %@", mClient.showCardPlanScreen); 
    if([mClient.showCardPlanScreen isEqualToString:STRING_VALUE_ZERO]) { 
     NSLog(@"Do nothing"); 
    } else if([mClient.showCardPlanScreen isEqualToString:STRING_VALUE_ONE] || [mClient.showCardPlanScreen isEqualToString:STRING_VALUE_TWO]) { 
     NSLog(@"Show card plan screen %@", mClient.showCardPlanScreen); 
     ChangePlanViewController *changePlanVoewController = [[ChangePlanViewController alloc] initWithNibName:@"ChangePlanViewController" bundle:nil]; 
     changePlanVoewController.isFromLogin = STRING_VALUE_YES; 
     [self.navigationController pushViewController:changePlanVoewController animated:YES]; 
    } 

ответ

0

Или вы можете создать из них 4 на раскадровке, в loadingView с 4-мя видами, относящихся к нему с перетекает и в методе доставки звоните performSegue с правым идентификатором.

Смежные вопросы