Мне нравится использовать метод 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. ;)