Важно знать, что я думаю, что я использую раскадровки. Я делаю следующее didFinishLaunchingWithOptions:Раскадровка - initWithCoder получает вызов дважды
UIStoryboard *sb = [UIStoryboard storyboardWithName:@"Storyboard" bundle:nil];
FirstView *mvc = [sb instantiateViewControllerWithIdentifier:@"FirstView"];
SecondView *tvc = [sb instantiateViewControllerWithIdentifier:@"SecondView"];
NSArray* controllers = [NSArray arrayWithObjects:[self addNavigationToViewController:mvc], [self addNavigationToViewController:tvc], nil];
// add controllers to a table view
UITabBarController *tb = [[UITabBarController alloc] init];
[tb setViewControllers:controllers];
[self.window setRootViewController:tb];
addNavigationToViewController это метод я использую для того, чтобы встроить контроллер представления внутри UINavigationController
Когда я запускаю это приложение initWithCoder
в FirstView вызывается дважды. Я нашел причину, но я не знаю, как это сделать правильно.
В основном FirstView становится инициализируется один раз из-за его Начальная сцена (есть галочка в Attributes Inspector, который устанавливает вид «Является ли первоначальный контроллер представления») и второй раз:
FirstView *mvc = [sb instantiateViewControllerWithIdentifier:@"FirstView"];
Если снять галочку Начальная сцена жалуется, что «возможно, назначенная точка входа не установлена».
Я делаю что-то неправильно, но я понятия не имею, что это такое.
Любой намек был бы оценен.
У меня точно такая же проблема ... пока я никогда не называю метод "instantiateViewControllerWithIdentifier". Я использую «чистую» раскадровку (например, никакой контроллер не создается в исходном коде). Любая идея, почему метод «initWithCoder» вызывается дважды? – CedX