UINavigationController - 推送时保持导航栏相同

时间:2012-10-05 07:00:22

标签: objective-c ios uinavigationcontroller uinavigationbar

我设置titleView使用navigationBar上的图片。当我推送新viewController时,我将该图形保留在推送控制器的titleView中。

我讨厌navigationBar的滑动效果。有没有办法阻止转换影响navigationBar,以便在推送新视图时,我的titleView图像不会在新版本中显示滑动的外观?

1 个答案:

答案 0 :(得分:1)

如果在推动应阻止动画的新视图控制器时将动画状态更改为NO。

[self.navigationcontroller pushVewController:newVC animated:NO];

编辑:创建位于导航控制器内部的自定义视图,但您需要创建自己的自定义图像以替换导航栏图像的功能。然而,这并不是我的过渡,我认为这是理想的结果。

- (void)viewDidLayoutSubviews{
    self.navigationItem.backBarButtonItem = nil;
    [self.navigationController.navigationBar.backItem setHidesBackButton:YES];
    self.navigationController.navigationBar.topItem.titleView = nil;
    UIView *staticTitle = [[UIView alloc]initWithFrame:self.navigationController.navigationBar.bounds];
    [staticTitle setBackgroundColor:[UIColor greenColor]];
    [staticTitle setUserInteractionEnabled:NO];
    [self.navigationController.navigationBar addSubview:staticTitle];
    UIButton *customButton = [[UIButton alloc] initWithFrame:CGRectMake(15, 15, 100, 60)];
    [customButton setBackgroundColor:[UIColor redColor]];
    [customButton addTarget:self action:@selector(handleBackBtn) forControlEvents:UIControlEventTouchUpInside]; 
    [customButton setTitle:@"Button" forState:UIControlStateNormal];
    [staticTitle addSubview:customButton];
}