Ios 在viewDidLoad中创建导航栏
我正在Ios 在viewDidLoad中创建导航栏,ios,uiviewcontroller,navigationbar,viewdidload,viewwillappear,Ios,Uiviewcontroller,Navigationbar,Viewdidload,Viewwillappear,我正在viewDidLoad中创建我的导航栏。我在许多示例代码中看到,应该在视图中创建导航栏。如果我的视图控制器是根视图控制器,则不会设置导航栏背景图像。除此之外,它似乎工作正常。是否有任何方法可以完全且仅在视图控制器的整个生命周期中创建一次导航栏,而不在视图中显示 当前代码: - (void)viewDidLoad { [self initializeNavigationBar]; } - (void)viewWillAppear { [self initializeNavi
viewDidLoad
中创建我的导航栏。我在许多示例代码中看到,应该在视图中创建导航栏。如果我的视图控制器是根视图控制器,则不会设置导航栏背景图像。除此之外,它似乎工作正常。是否有任何方法可以完全且仅在视图控制器的整个生命周期中创建一次导航栏,而不在视图中显示
当前代码:
- (void)viewDidLoad
{
[self initializeNavigationBar];
}
- (void)viewWillAppear
{
[self initializeNavigationBar];
}
- (void)initializeNavigationBar
{
navBar = [[ICANavBarView alloc] initWithFrame:CGRectMake(0, 0, 768, 44)];
navBar.delegate = self;
[navBar createViewWithTitle:StringForKey(@"company_short_title")];
[self.navigationController.navigationBar setBackgroundImage:[UIImage imageNamed:@"nav_bar_bg"] forBarMetrics:UIBarMetricsDefault];
[self.navigationItem setTitleView:navBar];
[self.navigationItem setHidesBackButton:YES];
//iOS7 Bug fixation of Navigation Bar
[navBar hideStatusBarOnViewController:self];
[self.navBar enableEditButton:(imageView.layer.sublayers.count > 0)];
}
当我显示视图时,我不想在视图中执行此操作。关闭这些显示的视图时,将显示调用view
。因此,导航栏被重新初始化
以下代码是我要避免的:
- (void)viewDidLoad
{
[self initializeNavigationBar];
}
- (void)viewWillAppear
{
[self initializeNavigationBar];
}
- (void)initializeNavigationBar
{
navBar = [[ICANavBarView alloc] initWithFrame:CGRectMake(0, 0, 768, 44)];
navBar.delegate = self;
[navBar createViewWithTitle:StringForKey(@"company_short_title")];
[self.navigationController.navigationBar setBackgroundImage:[UIImage imageNamed:@"nav_bar_bg"] forBarMetrics:UIBarMetricsDefault];
[self.navigationItem setTitleView:navBar];
[self.navigationItem setHidesBackButton:YES];
//iOS7 Bug fixation of Navigation Bar
[navBar hideStatusBarOnViewController:self];
[self.navBar enableEditButton:(imageView.layer.sublayers.count > 0)];
}
导航栏创建方法:
- (void)viewDidLoad
{
[self initializeNavigationBar];
}
- (void)viewWillAppear
{
[self initializeNavigationBar];
}
- (void)initializeNavigationBar
{
navBar = [[ICANavBarView alloc] initWithFrame:CGRectMake(0, 0, 768, 44)];
navBar.delegate = self;
[navBar createViewWithTitle:StringForKey(@"company_short_title")];
[self.navigationController.navigationBar setBackgroundImage:[UIImage imageNamed:@"nav_bar_bg"] forBarMetrics:UIBarMetricsDefault];
[self.navigationItem setTitleView:navBar];
[self.navigationItem setHidesBackButton:YES];
//iOS7 Bug fixation of Navigation Bar
[navBar hideStatusBarOnViewController:self];
[self.navBar enableEditButton:(imageView.layer.sublayers.count > 0)];
}
您是否将appDelegate
中的rootViewController
设置为UINavigationController
?是。我正在这么做。你的一些代码会有帮助的。“创建我的导航栏”是什么意思?您正在调用setNavigationBarHidden:animated:
?您显然已经有了代码,因此请分享您已经有的代码,这样我们就不会猜测了。该代码没有告诉我们任何信息。initializeNavigationBar