Мое приложение - однонаправленный NavigationController в качестве приложения стиля контроллера корневого представления. В нем у меня есть несколько различных ярлыков для использования 3D Touch. У меня все они настроены в Info.plist (я делал это раньше с помощью приложения Tab Bar, и он работал нормально), но он срабатывает каждый раз при нажатии на ярлык. Вот мой код, используемый в AppDelegate в Obj-C.3D Touch для ярлыков Сбой
- (void)application:(UIApplication *)application performActionForShortcutItem:(UIApplicationShortcutItem *)shortcutItem completionHandler:(void (^)(BOOL))completionHandler {
UINavigationController *nav = (UINavigationController *) self.theMainView.view;
NSLog(@"%@", shortcutItem.type);
if ([shortcutItem.type isEqualToString:@"com.316apps.Fritch.inviteFriends"]) {
ImagePicker *vimeo= [[ImagePicker alloc] init];
[nav pushViewController:vimeo animated:YES];
}
if ([shortcutItem.type isEqualToString:@"com.316apps.Fritch.viewAlerts"]) {
NewsViewController *dvController8 = [[NewsViewController alloc] initWithNibName:@"NewsViewController" bundle:[NSBundle mainBundle]];
[nav pushViewController:dvController8 animated:YES];
}
if ([shortcutItem.type isEqualToString:@"com.316apps.Fritch.viewDirectory"]) {
DirectoryViewController *dvController8 = [[DirectoryViewController alloc] init];
[nav pushViewController:dvController8 animated:YES];
}
}
Краш Log:
com.316apps.Fritch.viewDirectory
2017-01-19 22:44:23.305906 Fritch[3956:925348] -[UILayoutContainerView pushViewController:animated:]: unrecognized selector sent to instance 0x101837530
2017-01-19 22:44:23.306768 Fritch[3956:925348] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[UILayoutContainerView pushViewController:animated:]: unrecognized selector sent to instance
Пожалуйста, добавьте журнал аварий. – nynohu
Вы на 100% уверены, что 'ImagePicker' является viewController? Именование по сравнению с другими означает, что это взгляд. Все ваши другие контроллеры имеют схему: 'someViewController', а не просто' some'. Если мы придерживаемся вашей конвенции, тогда это должен быть «ImagePickerViewController». Поэтому почему я спрашиваю, это ошибка? – Brandon
@Brandon Это контроллер вида. Я обновляю это приложение, и он использовался как контроллер панели вкладок. Хотя это был контроллер панели вкладок, мне удалось получить текущую вкладку, инициализировать ее как контроллер корневого представления и нажать на любой вид, который мне нужен. Эти ярлыки отлично работали над этим, мне просто нужно выяснить, что делать, чтобы он работал прямо на UINavigationController в качестве корня вместо вкладки. – user717452