Прежде всего, я новичок, поэтому у меня могут быть неправильные понятия.Как добавить/подключить NIB к программно созданному UINavigationController?
Это мой код в AppDelegate.m:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
UIViewController *viewController = [[UIViewController alloc] initWithNibName:@"FirstView" bundle:nil];
self.navigationController = [[UINavigationController alloc] initWithRootViewController: viewController];
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
// Override point for customization after application launch.
self.window.backgroundColor = [UIColor whiteColor];
self.window.rootViewController = self.navigationController;
[self.window makeKeyAndVisible];
return YES;
}
Идея заключается в том, чтобы программно добавить UINavigationController, но затем использовать .xib (далее "FirstView" paremeter) взглядов. У меня нет проблем с программным созданием представлений, но для более простых интерфейсов я предполагаю, что использование IB также может быть выполнено.
Однако, когда я запускаю код, я получаю эту ошибку:
2013-07-11 21:20:42.644 new-book-proto-01[64308:11303] *** Terminating app due
to uncaught exception 'NSInternalInconsistencyException', reason:
'-[UIViewController _loadViewFromNibNamed:bundle:] loaded the "FirstView" nib
but the view outlet was not set.'
Что я должен делать? Что-то не хватает?
Кроме того, что-то вроде этого распространено в разработке iOS? Это плохая практика? Есть лучший способ сделать это?
В файле FirstView.xib проверьте, установлено ли в представлении просмотра свойство вида FileOwner или нет? – Mrunal
@ Mrunal прав, это звучит так, как будто здесь проблема. Все остальное выглядит правильно. –
@Mrunal Как мне это сделать? Я еще не совсем знаком с пользовательским интерфейсом XCode. – hfz