Сочетание TabBar и навигационных контроллеров Вопрос - PullRequest
1 голос
/ 15 сентября 2011

Так что у меня все работает так, как я хочу ... вроде ... однако я думаю, что я поступаю неправильно, и хотел бы убедиться, что я делаю это с самого начала. Поэтому я объясню, что у меня есть сейчас, в меру своих способностей (со мной, поскольку я довольно новичок в iOS).

Так что в моем appDelagate у меня есть UIViewController, называемый FrontPage, который в основном представляет собой экран входа в систему. Как только логин аутентифицирован, он удаляет себя из суперпредставления и создает tabbarcontroller, navigationcontroller (внутри панели вкладок) и различные UIViewController в NC и самостоятельно в панели вкладок. Затем я помещаю свой TabBarVC.view в subView окон.

Так что, как я уже сказал, это работает, но я надеялся, что после того, как я настроил подпредставление Windows на TabBarVC.view, я мог бы освободить TabBarViewController, чтобы освободить его, и appdelagate будет владеть TabBarVC, но когда я это сделаю, он падает.

Когда я набираю это, я понимаю, что никогда не пропускаю фактический TabBarVC, только представление, но есть ли способ сделать это?

Также, если я полностью откажусь от этого, дайте мне знать.

Спасибо за любые советы.

Ответы [ 2 ]

0 голосов
/ 15 сентября 2011

Вы должны установить свойство окна rootViewController для своего экземпляра UITabBarController, подобного следующему:

    // set the tab bar controller as our root view controller    
    [self.window setRootViewController:tabBarController];

Чтобы пояснить, это добавит TabBarController, его представление и все его подпредставления к окнупросматривать иерархию для вас, и я бы порекомендовал вам использовать этот метод и для вашего контроллера представления входа в систему.

0 голосов
/ 15 сентября 2011

Вы можете сделать свой UITabBarController IBOutlet для делегата приложения (или просто сохранить имеющийся у вас код, который его генерирует). Сделайте его сохраненным свойством делегата приложения, синтезируйте его и либо создайте UITabBarController в делегате приложения (self.tabBarController = ...), либо, если вы используете xib, установите соединение IBOutlet из UITabBarController с делегатом приложения в xib .

Вы можете добавить UITabBarController в окно приложения, а затем добавить FrontPage UIViewController поверх него. Как только вы удалите FrontPage из окна, UITabBarController уже будет находиться под ним.

...