Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

"Unrecognized selector sent to instance" error

Part of my AppDelegate code is:

UITabBarController *tabBarController 
    = (UITabBarController *)self.window.rootViewController;

UINavigationController *navigationController 
    = [[tabBarController viewControllers] objectAtIndex:0];

PilotosViewController *playersViewController 
    = [[navigationController viewControllers] objectAtIndex:0];

playersViewController.drivers = players;

But I get this exception:

-[UIViewController viewControllers]: unrecognized selector sent to instance 0x6a75770
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[UIViewController viewControllers]: unrecognized selector sent to instance 0x6a75770'

Where is the mistake?

like image 494
El Sinior X Avatar asked Sep 16 '25 03:09

El Sinior X


2 Answers

I met the same issue, because I followed the steps by the author, but

UINavigationController *navigationController 
    = [[tabBarController viewControllers] objectAtIndex:0];

this is what which made the crash, because navigationController is not at index=0, I did exchange the locations of the two tab bar items, then it works.

like image 64
comic Avatar answered Sep 19 '25 05:09

comic


You need to make sure that you connect things properly in your XIB or storyboard. The exception is showing you that the object is of type ViewController when you send [tabBarController viewControllers] and you were expecting a UITabBarController. That's why you're getting '-[ViewController viewControllers]:. Make sure that your root view controller really is a tab view controller.

like image 40
wbyoung Avatar answered Sep 19 '25 03:09

wbyoung