2009-03-19 2 views
2

Я знаю, как добавить UIToolbar, который я делаю в rootviewcontroller.m:UIToolbar и другие виды

[self.navigationController.view addSubview:toolbar]; 

Однако, когда я перейти к другим представлениям, панель инструментов остается вверх, который в порядке, но как мне получить доступ к нему, чтобы скрыть/показать его?

Внутри RootViewController Я хотел бы использовать это:

toolbar.hidden = NO; 

Но я не могу найти способ сделать это вне rootviewcontroller.m

Можете ли вы показать мне пример сокрытия его из другого класса?

ответ

3

Существует два варианта;

1) Добавьте свойство к контроллеру, чтобы внешние классы могли получить доступ к объекту панели инструментов.

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

Я бы порекомендовал # 2, поскольку он ограничивает возможности внешних классов.

E.g.

-(void) hideToolbar:(BOOL)hidden 
{ 
    toolbar.hidden = hidden; 
} 
2

Проблема заключается в том, что вы не должны добавлять его в self.navigationController.view; вы должны добавить его к self.view. Исправление, которое должно исправить это для вас.

-1

Ответ Эндрю Гранта - это то, что вы ищете. Тем не менее, вы должны переименовать метод

-(void) isToolbarHidden:(BOOL)hidden { 
    toolbar.hidden = hidden; 

}

Это имеет смысл, что путь, если смотреть на код.

+1

isToolbarHidden, и все же он не возвращает ничего, но на самом деле изменяет скрытое значение? Возможно, setToolbarHidden ... – MrCranky

0

Вы можете попробовать добавить следующую строку во время инициализации контроллеров View, для которых вы не хотите, чтобы панель отображалась.

[self.navigationController setToolbarHidden:YES animated:NO]; 

F.

Смежные вопросы