首页 文章

ios7导航栏:使用自定义按钮返回动画时出现3个奇怪的点

提问于
浏览
15

我想使用后退导航动画

[self.navigationController popViewControllerAnimated:YES]

将自定义按钮添加到导航栏 .

因为我没有't want the back button to be seen, i'用 self.navigationItem.hidesBackButton = YES; 隐藏它

但是在后面的动画中,在ios7(不是ios6)上可以看到3个点在导航栏中滑动 . 他们没有出现 self.navigationItem.hidesBackButton = NO; 但当然可以看到按钮 .

有没有人有任何想法让它们不出现?

6 回答

  • 9

    如果你设置

    self.navigationItem.hidesBackButton = YES
    

    iOS有时会在其通用后退按钮内生成三个点 . 我通过将通用后退按钮上的文本设置为空来解决了问题,然后创建了我的自定义按钮 . 这是我设置空文本的方式:

    UIBarButtonItem *backButton2 = [[UIBarButtonItem alloc] initWithTitle:@"" style:UIBarButtonItemStylePlain target:nil action:nil];
    self.navigationItem.backBarButtonItem = backButton2;
    

    然后我创建了我的自定义UIButton并将它放在我想要的地方:

    UIButton *backButton = [[UIButton alloc] initWithFrame:CGRectMake(5, 70/2-22, 44, 44)];
    [backButton setImage:[[UIImage imageNamed:@"back_button.png"] imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate] forState:UIControlStateNormal];
    backButton.tintColor = tintColor;
    backButton.imageEdgeInsets = UIEdgeInsetsMake(-2, -15, 0, 0);
    
    
    [backButton addTarget:self action:@selector(popCurrentViewController) forControlEvents:UIControlEventTouchUpInside];
    
  • 2

    无需隐藏 backButton ,您只需添加自定义后退按钮,它将隐藏默认按钮 .

    - (void) viewDidLoad
    {
        UIBarButtonItem *backButton = [[UIBarButtonItem alloc] initWithTitle:@"Back" style:UIBarButtonItemStyleBordered target:self action:@selector(handleBack:)];
        self.navigationItem.leftBarButtonItem = backButton;
    }
    
    - (void) handleBack:(id)sender
    {
        [self.navigationController popViewControllerAnimated:YES];
    }
    
  • 2

    只需在viewWillAppear方法中添加以下这些行:

    迅速:

    self.navigationItem.backBarButtonItem = UIBarButtonItem(title: "", style: .Plain, target: nil, action: nil) self.navigationItem.leftBarButtonItem = UIBarButtonItem(title: "", style: .Plain, target: nil, action: nil)

    目标C:

    self.navigationItem.backBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"" style:UIBarButtonItemStylePlain target:nil action:nil]; self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"" style:UIBarButtonItemStylePlain target:nil action:nil];

    就这样

  • 0

    navigationItem.backBarButtonItem = nil

  • 1

    更简单的快速版本:

    let emptyBackButton = UIBarButtonItem(title: "", style: .Plain, target: nil, action: nil)
    navigationItem.hidesBackButton = true
    navigationItem.backBarButtonItem = emptyBackButton
    
  • 0

    您不需要编写任何代码只需遵循4个简单步骤即可完成 .

    • 选择您的Main.storyboard

    • 在导航控制器中选择导航栏

    • 选择属性检查器

    • 清除色调

    enter image description here

相关问题