У меня проблема, и я не мог понять, что делать.Как представить динамически созданный контроллер вида
в моем приложении - когда логины, есть 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];
}