UITabBarController с UINavigationController - PullRequest
       3

UITabBarController с UINavigationController

1 голос
/ 09 декабря 2010

У меня есть UINavigationController внутри UITabBarController (вкладка 1).Как я могу сделать так, чтобы панель вкладок исчезала при переходе во второй вид (все еще на вкладке 1)?Я могу вернуться назад с помощью кнопки «Назад», и панель вкладок появится снова.

Ответы [ 3 ]

4 голосов
/ 09 декабря 2010

self.hidesBottomBarWhenPushed = ДА;поместите эту строку, где вы перемещаетесь (перед операцией push).

и self.hidesBottomBarWhenPush = NO;в представлении исчезнет та же страница, откуда вы нажимаете другой вид.

Это действительно работает.

1 голос
/ 09 декабря 2010

В просматриваемый viewController поместите:

self.hidesBottomBarWhenPushed = YES;

в методе -viewDidLoad.Он принадлежит к «дочернему» венчурному капиталу, а не к тому, что он толкает.Вам не нужно устанавливать его где-либо еще.

0 голосов
/ 02 марта 2012

Мне нравится использовать метод init контроллера представления, чтобы скрыть нижнюю панель, между прочим. Делает для лучшей инкапсуляции поведения.

(Примечание: ниже приведен код, дружественный к ARC, следовательно, нет вызовов autorelease или retain / release.)

#pragma mark - UIViewController

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil {
    // We must handle this as it's the designated initializer for UIViewController.
    // Pay no attention to the params. We're going to override them anyway.
    return [self init];
}

#pragma mark - NSObject

- (id)init {
    // Why hello there, superclass designated initializer! How are you?
    if ((self = [super initWithNibName:@"YourNibNameHere" bundle:nil])) {
        // This is a perfect oppy to set up a number of things, such as ...

        // ... the title (since you're in a nav controller).
        self.navigationItem.title = @"Your Nav Title";

        // ... your bottom bar hiding (takes effect once pushed onto your nav controller).
        self.hidesBottomBarWhenPushed = YES;

        // ... and your tab bar item (since you're in a tab bar controller).
        [self setTabBarItem:[[UITabBarItem alloc] initWithTitle:@"Item Title" image:[UIImage imageNamed:@"itemIcon.png"] tag:itemTag]];
    }
    return self;
}

Теперь все, что вам нужно сделать, это alloc / init ваш контроллер вида и позвонить -pushViewController:animated:. Без суеты, без суеты.

Когда VC выскочит, ваша нижняя полоса вернется . (Promise.)

Благодарность за эту технику принадлежит Джо Конвею из Ранчо Большого Ботаника. (Вот от кого я узнал этот потрясающий паттерн.)

Что касается использования точечной нотации против нет, ну, это совершенно другое обсуждение. YMMV. ;)

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