Я пытаюсь добавить функциональность, чтобы открыть определенный контроллер представления при открытии уведомления в моем приложении iOS. Поскольку я новичок в iOS, у меня есть несколько сомнений.MainViewController pushViewController: анимированный:]: нераспознанный селектор отправлен в экземпляр 0x1459e980
Я написал бэкэнд, который отправляет рекламный идентификатор в качестве настраиваемого параметра. Я могу получить объект JSON на XCode, прочитать ID как NSString.
Теперь я хочу открыть PromotionDetailViewController с идентификатором продвижения в качестве параметра.
То, что я делал до сих пор есть,
PromotionDetailViewController *pVC = [[PromotionDetailViewController alloc] initWithPromotionID:promo_id[@"promo_id"]];
[(UINavigationController *)self.window.rootViewController pushViewController:pVC animated:YES];
[(UINavigationController *)[UIApplication sharedApplication].keyWindow.rootViewController popViewControllerAnimated:YES ];
Я могу получить и прочитать промо ID в файле AppDelegate.m. Когда я запускаю приведенный выше код, я получаю следующую ошибку.
MainViewController pushViewController:animated:]: unrecognized selector sent to instance 0x1459e980
Любая помощь в правильном направлении - это здорово! Я делаю php и android, но Obj-C совсем другой!
UPDATE Изменен код для этого:
PromotionDetailViewController *pvc = [[PromotionDetailViewController alloc] initWithPromotionID:promo_id[@"promo_id"]];
UINavigationController *promoNav =
[[UINavigationController alloc] initWithRootViewController:pvc];
self.window.rootViewController = promoNav;
Теперь вызов API успешно, я в состоянии видеть правильный бар NAV, но сбои приложения из-за следующей ошибки:
Terminating app due to uncaught exception 'NSRangeException', reason: '*** -[__NSArrayI objectAtIndex:]: index 0 beyond bounds for empty array'
Спасибо, я обновил свой вопрос. – pixelscreen