Прежде всего, я хочу подчеркнуть, что этот код работает, но плохо выглядит. Мне нужно, чтобы изменить вид контроллера программно (не может использовать SEGUE), поэтому я использую этот код:Obj-C Change ViewController программно (две раскадровки)
NSString *storyboardName = @"Main";
UIStoryboard *storyboard =
[UIStoryboard storyboardWithName:storyboardName bundle:nil];
PurchaseViewController *vc = [storyboard
instantiateViewControllerWithIdentifier:@"PurchaseViewController"];
[controller presentViewController:vc animated:YES completion:nil];
Obvoiusly свою работу. К сожалению, после того, как создать 2-ой раскадровку (IPad), я был вынужден изменить этот код:
#define IDIOM UI_USER_INTERFACE_IDIOM()
#define IPAD UIUserInterfaceIdiomPad
/*
...
*/
NSString *storyboardName;
if (IDIOM == IPAD)
storyboardName = @"Main_iPad";
else
storyboardName = @"Main";
UIStoryboard *storyboard =
[UIStoryboard storyboardWithName:storyboardName bundle:nil];
PurchaseViewController *vc = [storyboard
instantiateViewControllerWithIdentifier:@"PurchaseViewController"];
[controller presentViewController:vc animated:YES completion:nil];
Это должно быть лучшим решением, чем это, но я не нашел. Вы знаете альтернативное (лучшее) решение?