Головоломка панели навигации

#iphone #objective-c #xcode4

#iPhone #objective-c #xcode4

Вопрос:

У меня есть 2 представления. Первый вид — это супервизор, имеющий панель навигации сверху. На моем первом представлении есть одна кнопка, использующая этот метод:

 -(IBAction)openView:(id)sender{


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

view1 = [[ImageView alloc] init];
view1.largeImageDataTwo = self.aNewsInfo.largeImageData;
view1.titleTwo = self.aNewsInfo.title;

[self.view addSubview:view1.view];}
  

Это действие открывает view1 без панели навигации сверху. (как я хочу)

и на этой конкретной странице (View1) у меня есть другая кнопка, которая использует этот метод

 -(IBAction)back:(id)sender{
[d1.navigationController setNavigationBarHidden:NO animated:NO];
[self.view removeFromSuperview];}
  

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

Как я могу это сделать? Как я могу вернуть панель навигации в 1-й вид при возврате из второго вида?

Заранее спасибо

Ответ №1:

В вашем первом представлении, в вашем viewWillAppear: методе, попробуйте вызвать [self.navigationController setNavigationBarHidden:NO animated:NO] .

На втором представлении после вызова removeFromSuperview вам, возможно, придется вызвать [d1 viewWillAppear:YES] . Я не уверен, считается ли это «наилучшей практикой», но вам, возможно, потребуется принудительно использовать это таким образом, потому что removeFromSuperview метод super view viewWillAppear: может не вызываться автоматически (как некоторые другие методы, которые изменяют иерархию представлений).)