Это может быть простой ответ для кого-то.
Сначала я создал навигационное приложение, в котором таблица была загружена из SQLite. RootViewController (UITableViewController) загружается из mainWindow.xib. Я добавил функции поиска и области видимости, и просто выдвинул подробный вид (UIViewController) из выбранной строки, и теперь я могу перемещаться назад и вперед к таблице и обратно и фильтровать результаты, выполнять поиск с возможностью поиска по различным областям поиска. Все хорошо, никаких ошибок, сбоев или предупреждений.
Теперь я попытался добавить интерфейс tabBar поверх rootViewController ... через 2 дня я получил TabBarController для отображения (я пытался реализовать его непосредственно на RootviewController, но обнаружил, что мне пришлось реализовать его в основное окно), и я могу выбрать различные виды (XIB) на панели вкладок. У меня есть одна вкладка, которой в IB не назначено представление, и я вижу загрузку RootViewController, как это было раньше, в качестве первого экрана в этом представлении вкладок, даже если RootViewController не назначен на вкладке.
Проблема в том, что я не могу щелкнуть строку в таблице, когда она загружается таким образом. В качестве альтернативы, если я создаю вкладку, вызывающую RootViewController, я получаю панель поиска вверху, но таблица пуста. Я чувствую, что это как-то связано с тем, что appDelegate загружает rootViewController, и я не знаю, как заставить его «загружать» или «перезагружать» вкладку, или что-то в этом роде. Я попытался создать отдельный «search.xib», который был идентичен исходному mainWindow, перед добавлением панели вкладок, затем попытался загрузить его в TabItem, чтобы он сначала вызывал appDelegate, но не cigar: crash. Я проверил, что search.xib работает нормально, так как я поставил его как info.plist "Основное имя файла основного пера", и он прекрасно загружается и работает как и раньше, когда BS добавлял tabBarController ...
Я бы начал вставлять код, но не уверен, что кому-то нужно будет знать, что пропущено или неправильно. Я звоню [self.tableView reloadData]
в -(void)viewDidLoad
, в RootViewController.m, но это совсем не помогает этой проблеме.
Кто-нибудь может помочь?
Mac OS X - версия 10.5.8, и я использую XCode 3.1.4.
// Create and configure the main view controller.
RootViewController *rootViewController = [[RootViewController alloc] initWithNibName:@"RootViewController" bundle:nil];
rootViewController.violinMakers = violinMakers;
[violinMakers release];
// Add create and configure the navigation controller.
UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:rootViewController];
self.navController = navigationController;
[navigationController release];
// Configure and show the window, Override point for customization after app launch
[window addSubview:[navController view]];
[window addSubview:tabBarController.view];
[window makeKeyAndVisible];
Спасибо за попытку помочь!
В последнем разделе выше, по-видимому, я должен получить RootViewController на вершине стека, но не уверен, как.
// <AppName>AppDelegate.h
@interface <AppName>AppDelegate: NSObject <UIApplicationDelegate,
UITabBarControllerDelegate, UINavigationControllerDelegate>{
UIWindow *window;
UINavigationController *navController;
UITabBarController *tabBarController;
}
@property (nonatomic, retain) IBOutlet UIWindow *window;
@property (nonatomic, retain) IBOutlet UINavigationController *navController;
@property (nonatomic, retain) IBOutlet UITabBarController *tabBarController;
@end
Бен - я понимаю, что вы говорите о том, что rootViewController находится за вкладкой BarController. Я просто не знаю, как установить tabBar в качестве основного вида и navController в качестве его вкладки. Я посмотрю учебник, который вы упомянули, и посмотрим, поможет ли это объяснить. Спасибо Бен!
09-10-14 обновление
Некоторый прогресс!
Теперь у меня есть вид на вкладке с Навбар вверху. Я знаю, что он исходит из правильного файла .xib, так как теперь можно нажимать на заголовок и поиск, а кнопки области видимости - правильные имена. .... но, как и раньше, если я дошел до этой стадии или даже близко, информация таблицы не загружается в эту вкладку (все ячейки пусты). Как мне заставить мою таблицу загружаться правильно в этой ячейке? Я знаю, что он загружается при запуске, как будто этому окну вообще не назначен вид, я вижу таблицу n Nav, но не могу щелкнуть по ней (так близко, но так далеко). Теперь у меня правильно настроена вкладка, но таблица не загружается должным образом ... rrrr
У меня типичный
[self.tableView reloadData];
в viewController.m в методе:
- (void)viewWillAppear:(BOOL)animated
и
- (void)viewDidAppear:(BOOL)animated
и
- (void)viewDidLoad
и попробовал некоторые другие методы также, но это не перезагружает информацию таблицы, когда я выбираю вкладку.
Есть идеи, как правильно перезагрузить эту таблицу в представлении TabBar?
Я нашел хороший учебник по tabBars, который пошел немного дальше, чем некоторые другие, объясняя с IB. Учебник по внедрению Twillo в виде вкладки