导航栏标题文字不居中

出现部分导航栏标题不居中的原因的上一个视图的title文字过多的情况,引起本页面的返回按钮占居了很多位置将titleview挤到了右边,要解决这个问题,请在viewdidload中设置前一个视图的backBarButtonItem。

为了统一设置:利用了https://github.com/steipete/Aspects这个库注入方法。

方法如下:

 [UIViewController aspect_hookSelector:@selector(viewDidLoad) withOptions:AspectPositionAfter usingBlock:^(id info) {
       
        UIViewController* infoVC = (UIViewController*)info.instance;
        
        
        NSArray *viewControllerArray = [infoVC.navigationController viewControllers];
        
        if (viewControllerArray == nil) {
            return ;
        }
        
        long previousViewControllerIndex = [viewControllerArray indexOfObject:infoVC] - 1;
        UIViewController *previous;
        if (previousViewControllerIndex >= 0 && previousViewControllerIndex < viewControllerArray.count) {
            previous = [viewControllerArray objectAtIndex:previousViewControllerIndex];
            if (previous.title.length < 4){
                return ;
            }
            previous.navigationItem.backBarButtonItem = [[UIBarButtonItem alloc]
                                                         initWithTitle:@"xx"
                                                         style:UIBarButtonItemStylePlain
                                                         target:self
                                                         action:nil];
        }
 
    } error:NULL];

你可能感兴趣的:(Swift)