This works great:
UINavigationController *nc =
[[UINavigationController alloc]
initWithNavigationBarClass:[GTScrollNavigationBar class]
toolbarClass:[UIToolbar class]];
nc.viewControllers = @[firstPage];
self.window.rootViewController = nc;
but this does not work:
UINavigationController *nc =
[[UINavigationController alloc]
initWithNavigationBarClass:[GTScrollNavigationBar class]
toolbarClass:[UIToolbar class]];
self.window.rootViewController = nc;
self.window.rootViewController.viewControllers = @[firstPage]; // ERROR
how can it be? Thanks
does not compile because the
rootViewController
property ofUIWindow
is declared as a (generic)UIViewController
(which does not have aviewControllers
property), and not as aUINavigationController
.The compiler does not "know" that the root view controller is actually a navigation controller in your case.
So either you proceed as in your first code block, or you have to add an explicit cast: