Получение didSelectRowAtIndexPath для перехода к UIStoryboard с именами "MainStoryboard" и "MaiinStoryboardiPad"

В настоящее время я застрял в проблеме, у меня есть Mainstoryboard.storyboard для iPhone, я также настроил MainStoryboardiPad для iPad, на котором все выглядит нормально, но когда я реализую код ниже с полнофункционального экрана ipad, я на экране Iphone в вверху слева iPad.

Может кто-нибудь помочь с этим, пожалуйста, или если вы знаете правильный способ заставить обе раскадровки работать?

    Job *consignment = self.job[indexPath.section];
    UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];
    MsMenuController *controller = [storyboard instantiateViewControllerWithIdentifier:@"MsMenuController"];
    controller.consignment = consignment;
    [self.navigationController pushViewController:controller animated:YES];

Если я изменю storyboardWithName:@"MainStoryboard" на storyboardWithName@"MainStoryboardiPad", он будет работать нормально, но мне нужно иметь возможность работать на обоих устройствах.

1 ответ

Решение
NSString *storyboardName = UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone
                               ? @"MainStoryboard" : @"MainStoryboardiPad";
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:storyboardName bundle:nil];

Или вы, вероятно, можете сойти с рук с помощью self.storyboard вместо.

Другие вопросы по тегам