Loading UINavigationController subclass from a Nib
My situation is as follows: My class SettingsViewController is a subclass of UINavigationController . That class contains the logic of its rootViewController . For example, it acts as the delegate and data source for two table views in that root view controller.
I have no problem setting this up programmatically. In the initializer of SettingsViewController , I can create an additional UIViewController to serve as the root view controller, position the table views in its view, and set their delegates and data sources to self .
But I want to load that root view via a Nib. The problem is, I do not know how to connect that Nib with my SettingsViewController , how to set the delegates and data sources. The SettingsViewController is not accessible from within the Nib. 'File Owner' represents the root view controller, not the SettingsViewController .
How do I access my UINavigationController subclass from within my root view controllers Nib?
Thanks in advance.
you can declare a view inside your nib and set that of class SettingsViewController (if its a view).
or drag a view controller in IB and set this of class type SettingsViewController
//EDIT: so you want to present a view like MFMailComposerViewController . I also have a MessageViewController in my App which does nearly the same:
MessageViewController *mView = [[MessageViewController alloc]initWithNibName:@"MessageView" bundle:nil];
mView.navController = [[UINavigationController alloc] initWithRootViewController:mView];
[masterView presentModalViewController:mView.navController animated:YES];
[mView release];
notice that navController is a UINavigationController which is connected in IB to a navigation controller.
You won't have access to objects beyond your File's Owner in your nib. You would need to setup those properties programmatically after loading your view from that nib; your rootViewController could set its tables' delegates and datasources in its -viewDidLoad.
Additionally I have to ask, why did you subclass UINavigationController. The class references warns you that "This class is not intended for subclassing." There's probably a better place for your delegate/datasource logic if that's all you need this SettingsViewController for.
链接地址: http://www.djcxy.com/p/87714.html