【问题标题】:Mystery disfunction with navigation bars on iPhone!iPhone 上的导航栏出现神秘故障!
【发布时间】:2012-01-05 15:36:30
【问题描述】:

我正在通过 Xcode 4.2 中的情节提要制作带有导航控制器的应用程序。

我想在加载每个视图并单击屏幕顶部的按钮时隐藏所有导航栏,导航栏应该显示几秒钟(我为此使用了 NStimer)然后隐藏再次。

到目前为止,我已经做到了,但问题是当我推送另一个视图然后返回上一个视图时,可以单击按钮但导航栏不再出现。

这是我的代码:

-(void)viewDidLoad
{
    [self.navigationController setNavigationBarHidden:YES animated:YES];
}

-(IBAction)top {
    [self.navigationController setNavigationBarHidden:NO animated:YES];
    hideNavTimer = [NSTimer scheduledTimerWithTimeInterval:3
    target:self selector:@selector (HideNav)     userInfo:nil repeats:NO];
}

-(void)HideNav {
    [self.navigationController setNavigationBarHidden:YES animated:YES];
    [hideNavTimer invalidate];
    hideNavTimer=nil;
}

我在推送的每个视图中都使用此代码。

我做错了什么?

【问题讨论】:

  • 我认为问题出在 segue 模态转换中。谁能帮帮我?

标签: iphone ios xcode uinavigationbar xcode4.2


【解决方案1】:

你应该把它放在 viewWillAppear 中:

-(void)viewWillAppear:(BOOL)animated:
{
    [super viewWillAppear:animated];
    [self.navigationController setNavigationBarHidden:YES animated:animated];
}

【讨论】:

  • 我做到了,但是当您返回上一个视图时,它仍然无法使导航栏可见。
  • 我做了一个测试。在您提供的代码中,我切换了 setNavigationBarHidden:NO。当我回到这个视图时,导航栏应该是可见的,但它不是。我猜当您从一个视图返回到前一个视图时,某些东西会保留“setNavigationBarHidden:YES”.....
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-11-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-02-10
  • 1970-01-01
  • 2014-03-10
相关资源
最近更新 更多