Если ваш .m
файл не связан ни с одной раскадровкой, self.storyboard
не будет Nil
?
Попробуйте:
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:
@"MainStoryboard" bundle:[NSBundle mainBundle]];
ViewController *viewController = [storyboard instantiateViewControllerWithIdentifier:@"HauptMenu"];
Обязательно измените storyboardWithName:
на имя вашей раскадровки.
Возможно, вы не получили никаких ошибок, потому что Objective-C обрабатывает ноль иначе, чем другие языки, он (обычно) не будет выдавать исключение, если вы попытаетесьвызовите метод для nil, он просто вернет nil.Следующий код будет успешно запущен без ошибок компиляции или времени выполнения:
UIViewController * test = nil;
[test viewDidLoad];
NSString * storyBoardName;
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
storyBoardName = @"MainStoryboard_iPad";
} else {
storyBoardName = @"MainStoryboard_iPhone";
}
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:
storyBoardName bundle:[NSBundle mainBundle]];
ViewController *viewController = [storyboard instantiateViewControllerWithIdentifier:@"HauptMenu"];