#objective-c #uinavigationbar #uitabbar
#objective-c #панель навигации #uitabbar
Вопрос:
Я создаю приложение с UIWebView, UITabBar и несколькими другими представлениями, каждое из которых предназначено для вкладки. Я хочу показать навигационную панель, панель вкладок и представление на одном дыхании. Когда я набираю это:
-(BOOL) (UIApplication *) application ApplicationDidFinishLaunchingWithOptions: (NSDIctionary *) launchOptions {
[_window addSubView: tabController.view];
[_window addSubView: navController.view];
[self._window makeKeyAndVisible];
return YES;
}
Я получаю все, что хочу, но я не могу щелкнуть панель вкладок (я вижу это, с ней все в порядке). Кнопка, которую я создал, работает на панели навигации, но я не могу нажимать на вкладки панели вкладок.
Когда я меняю их местами:
-(BOOL) (UIApplication *) application didFinishLaunchingWithOptions: (NSDIctionary *) launchOptions {
[_window addSubView: navController.view];
[_window addSubView: tabController.view];
[self._window makeKeyAndVisible];
return YES;
}
Я получаю свою панель вкладок с интерактивными вкладками, но панели навигации нет. Я даже не вижу этого.
Итак, моя структура такова:
-Window:
-TabBarController:
-> View1.xib
-UIWebView
-UINavigationBar
-> View3.xib
-UIWebView
-UINavigationBar
-> View3.xib
-UIWebView
-UINavigationBar
Есть идеи?
Комментарии:
1.
ApplicationDidFinishLaunchingWithOptions
выглядит неправильно, это псевдокод?2. Отредактировано, вы были правы, это должно было быть: didFinishLaunchingWithOptions. И это не псевдокод, я использую Xcode 4, в котором есть новые функции, которые встроены по умолчанию.
Ответ №1:
Как правило, вы не можете добавить в окно контроллеры nab и панели вкладок. Обычно структура:
- Окно
- TabBarController
- Контроллер вкладки 1
- Навигационный контроллер вкладки 1
- Контроллер вкладки 2
- NavigationController вкладки 2
- Контроллер вкладки 3
- Навигационный контроллер вкладки 3
- Контроллер вкладки и т.д.
- Навигационный контроллер вкладки и т.д.
Это позволяет использовать разные контроллеры навигации для разных вкладок. И единую панель вкладок для приложения.
Можно инвертировать структуру и поместить навигационный контроллер поверх нее, а вкладки — где-то ниже. Но это не обычное использование этих компонентов.
Я хочу упомянуть, что вы можете добавить в окно только вид панели вкладок, все остальные виды обрабатываются контроллерами.
Комментарии:
1. Ну, у меня немного другая структура. Однако, когда я пытаюсь сделать то, что вы говорите: у меня есть три других представления, которые автоматически отображаются контроллером панели вкладок, я не кодировал это, но использовал контроллер панели вкладок из Xcode. Итак, я выбрал в построителе интерфейса, чтобы для каждой вкладки контроллер панели вкладок отображал файл .xib, соответствующий вкладке. Однако (все они являются UIWebViews), когда я добавляю панели навигации к каждому файлу .xib, они не отображаются, а отображается только UIWebView. Как это сделать тогда?
2. Итак, моя структура такова: -Window: -TabBarController: -> View1.xib -UIWebView -панель навигации -> View3.xib -UIWebView -панель навигации -> View3.xib -UIWebView -панель навигации
3. Теперь я понимаю, о чем вы говорите. Большое спасибо! Проблема заключалась в том, что я не знал, что могу расширить панель ViewController в Xcode 4. Теперь я могу видеть, как связана каждая часть моего представления, и я могу вручную изменить их положение, как вы сказали. Еще раз спасибо!