I’m working with ShareKit, an open-source sharing foundation for iOS apps. There is a known bug that prevents the Kit from detecting what your root view controller is. The fix for that bug is adding [SHK setRootViewController:myViewController]; in the app delegate.
If the fix is in the UIApplication didFinishLaunching method, wouldn’t the view controller just be self? What am I missing? I’ve also tried self.viewController, self.window.rootViewController and self.window to no avail.
EDIT: Here’s the entire didFinishLoading:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
// Override point for customization after application launch.
self.viewController = [[Chatter_BoxViewController alloc] initWithNibName:@"Chatter_BoxViewController" bundle:nil];
self.window.rootViewController = self.viewController;
[self.window makeKeyAndVisible];
[SHK setRootViewController:self.viewController];
return YES;
}
If it would only be “self” in the didFinishLaunching it would refer to the UIApplication, don’t you agree? Are you initing correctly the viewController? Post some more code. 🙂
Comment to your Edit:
If you have your Window set normally in your XIB you don’t need this:
Also, if you do this (presuming your viewController is retained as property):
You will have a leak. Just do this: