0

Ich habe rund um Stackoverflow gesucht und ich bin nicht in der Lage, mein Problem zu beheben, ich habe den folgenden Code in meinem AppDelegate.m:PushingViewController in AppDelegate Unbekannter Selektor zum Beispiel

UINavigationController *navigationController = (UINavigationController *)self.window.rootViewController; 
     UIStoryboard *mainStoryboard = [UIStoryboard storyboardWithName:storyboard bundle: nil]; 
     InternetConnectionViewController *controller = (InternetConnectionViewController*)[mainStoryboard instantiateViewControllerWithIdentifier: noInternet]; 
     [navigationController pushViewController:controller animated:YES]; 

Aber ist mir ein Fehler geben. ..:

Uncaught exception: -[CustomSplitViewController pushViewController:animated:]: unrecognized selector sent to instance 0x17884860 
2016-06-16 02:34:14.896 --[3340:1197655] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[CustomSplitViewController pushViewController:animated:]: unrecognized selector sent to instance 0x17884860' 
*** First throw call stack: 
(0x20c6b91b 0x20406e17 0x20c712b5 0x20c6eee1 0x20b9a238 0x23005d 0xb1cb7f 0xb1cb6b 0xb21655 0x20c2db6d 0x20c2c067 0x20b7b229 0x20b7b015 0x2216bac9 0x2524d189 0x18abdb 0x20823873) 
libc++abi.dylib: terminating with uncaught exception of type NSException 
warning: could not load any Objective-C class information from the dyld shared cache. This will significantly reduce the quality of type information available. 

EDIT - UPDATE schaffe ich es zu erreichen und arbeitet nun ... aber wenn ich versuche, dies zu tun:

UINavigationController *navigationController = self.navigationController; 
UIStoryboard *mainStoryboard = [UIStoryboard storyboardWithName:@"Main" bundle: nil]; 
    HomeViewController *controller = (HomeViewController*)[mainStoryboard instantiateViewControllerWithIdentifier: viewC]; 
    [navigationController pushViewController:controller animated:YES]; 

im InternetViewController es gibt mir die folgende Fehlermeldung:

*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[UINavigationController setPanGestureEnabled:]: unrecognized selector sent to instance 0x16942a00' 
+1

Ist es möglich, dass rootViewController 'CustomSplitViewController' ist, die nicht vom Typ' UINavigationController 'ist? – gabbler

+0

Wie in den Fehler gesehen, ist dies möglich, ich habe zwei verschiedene Zeiten, wenn der InternetConnectionViewController angezeigt wird, wenn der Benutzer angemeldet ist, wird es in der CustomSplitViewControlIr, wenn es nicht in der LoginViewController – ZetaPR

+0

Ich führe einige Tests und das ist nur passiert wenn ich in CustomSplitViewController bin – ZetaPR

Antwort

1

erstellen Eigenschaft in AppDelegate.h

@property (strong, nonatomic) UINavigationController *navController; 

Dann

self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; 
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil]; 

MainTabBarController *mainTabbarController = [storyboard instantiateViewControllerWithIdentifier:@"MainTabbar"]; 
self.navController = [[UINavigationController alloc] initWithRootViewController:mainTabbarController]; 
self.window.rootViewController = self.navController; 
[self.window makeKeyAndVisible]; 
+0

Dies scheint zu arbeiten, ich mache einige Tests in verschiedenen Controllern und akzeptiere Ihre Antwort später. – ZetaPR

+0

Ich habe ein neues Problem Ich versuche, dies zu tun: 'UINavigationController * navigationController = self.navigationController; HomeViewController * Controller = (HomeViewController *) [Hauptverzeichnis instantiateViewControllerWithIdentifier: kHome]; [Navigationpushviewcontroller: controller animiert: JA]; ' aber ich habe die gleichen Fehler: ' *** Beenden app aufgrund abgefangene Ausnahme 'NSInvalidArgumentException', Grund: ‚- [UINavigationController setPanGestureEnabled]: unerkannten Selektor geschickt 0x16942a00 '' – ZetaPR

+0

Warum machen Sie das verwirrend ... Hier drücken Sie VC, aber Sie müssen nur die rootVC des navVC ändern. Und wenn Sie vorherige VC erhalten möchten, verwenden Sie denselben Code und ändern Sie die erwartete VC. –

0

dieses

versuchen Datei 0
UIStoryboard *mainStoryboard = [UIStoryboard storyboardWithName:storyboard bundle: nil]; 
InternetConnectionViewController *controller = (InternetConnectionViewController*)[mainStoryboard instantiateViewControllerWithIdentifier: noInternet]; 
UINavigationController *navObj = [[UINavigationController alloc]initWithRootViewController:controller]; 
self.window.rootViewController = navObj; 

Hoffe das hilft!