iPhone добавляет UITabBar в TableView / NavigationController - PullRequest
0 голосов
/ 05 января 2010

Я нашел много информации по этой теме, но еще не понял, как это происходит на самом деле.

Я хочу добавить UITabBar в приложении для iPhone в приложение, уже использующее UIWindow / UINavigation Controller в качестве окна по умолчанию.

т.е. добавить панель вкладок в типичное приложение NavControl с помощью RootViewController.xib, MainWindow.xib, AddView.xib, DetailView.xib, EditView.xib и т. д. Который я редактирую?

Если бы кто-то мог указать мне на визуальный пример, это было бы оценено. Screencast наверняка получит бонусные баллы, этот вопрос так часто задают в Интернете, и я не могу найти простой ответ. Увидеть: Как добавить TabBar в приложение для iPhone на основе NavigationController

Образцы

например. appdelegate выглядит так:

@interface SQLAppDelegate : NSObject <UIApplicationDelegate> {

    UIWindow *window;
    UINavigationController *navigationController;

}

@property (nonatomic, retain) IBOutlet UIWindow *window;
@property (nonatomic, retain) IBOutlet UINavigationController *navigationController;

Ответы [ 2 ]

3 голосов
/ 05 января 2010

Мне неясно, хотите ли вы добавить панель вкладок "внутри" одного из представлений контроллера навигации, или вы хотите взять представление контроллера навигации и сделать его только одной из вкладок в контроллере панели вкладок с несколько вкладок.

Я думаю, что люди находят панель вкладок внутри подпредставления контроллера навигации немного странной, поэтому я предполагаю, что вы хотите сказать, что вы хотите поместить контроллер навигации в подпредставление контроллера панели вкладок, как у меня на изображении ниже:

альтернативный текст http://img138.imageshack.us/img138/7671/screenshotve.png

"Logging View Controller" загружается из файла NIB, который содержит представление и некоторые другие вещи.

Если вы хотите что-то вроде представления с вкладками внутри одного из подпредставлений контроллера навигации, я бы использовал сегментированный элемент управления для переключения представлений внутри этого конкретного подпредставления или чего-то подобного.

Если вы пытаетесь сделать то, что я сделал в окне выше, просто перетащите новый контроллер панели вкладок в ваш основной файл пера, а затем перетащите существующий контроллер навигации на значок контроллера панели вкладок. Это сделает контроллер навигации одной из вкладок внутри контроллера вкладок.

2 голосов
/ 05 января 2010

ОК, я не спал большую часть ночи и работал над этим. Я основал это на вдохновении, приведенном выше, и на примере кода SDK Apple Recipes.

Тот скриншот, который вы опубликовали, был ключевым. Вот вообщем что я сделал:

* Запустил мой проект, заставил его работать так, как я хотел с UITableViews * Создать TabBar в IB * Скопировал точно такой же макет для приложения в Интерфейсном Разработчике, Соединениях и т. Д. * Скопированный код, относящийся к дисплеям

(Снимок экрана подключений) http://img511.imageshack.us/img511/6267/screenshot20100105at121.png

Код ключа:

AppDelegate.h:

@interface AppDelegate : NSObject <UIApplicationDelegate> {

    UIWindow *window;
    UINavigationController *navigationController;

    UITabBarController *tabBarController;
    RootViewController *rootController;
}

@property (nonatomic, retain) IBOutlet UITabBarController *tabBarController;
@property (nonatomic, retain) IBOutlet RootViewController *rootController;

AppDelegate.m:

- (void)applicationDidFinishLaunching:(UIApplication *)application {

    [window addSubview:tabBarController.view];
    [window makeKeyAndVisible];
}

Это только образцы ключевых вещей, которые я изменил. Ничего за пределами AppDelegate не трогали, кроме как в конструкторе интерфейсов. Я продолжал загружать белое пустое окно каждый раз, пока я не изменил

[window addSubview:[navigationController view]];

до

[window addSubview:tabBarController.view];

Это ключ.

Надеюсь, это поможет кому-то еще, я рад разобраться

С уважением, @ norskben

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...