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

use*_*585 15 uinavigationbar ios

我想使用后退导航动画

[self.navigationController popViewControllerAnimated:YES] 
Run Code Online (Sandbox Code Playgroud)

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

由于我不希望看到后退按钮,我已将其隐藏起来 self.navigationItem.hidesBackButton = YES;

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

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

Adi*_*inp 9

如果你设置

self.navigationItem.hidesBackButton = YES
Run Code Online (Sandbox Code Playgroud)

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

UIBarButtonItem *backButton2 = [[UIBarButtonItem alloc] initWithTitle:@"" style:UIBarButtonItemStylePlain target:nil action:nil];
self.navigationItem.backBarButtonItem = backButton2;
Run Code Online (Sandbox Code Playgroud)

然后我创建了我的自定义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];
Run Code Online (Sandbox Code Playgroud)


Suh*_*hil 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];
}
Run Code Online (Sandbox Code Playgroud)