iOS自定义导航后退栏操作无效

时间:2017-07-08 00:47:12

标签: ios objective-c navigation

我尝试更改导航后退栏按钮。

我的代码将推送自我控制器。

所以我需要在推动第二个视图控制器时,导航后退栏按钮(左栏按钮)是显示主页图像栏按钮项。

然后在推后自我第三视图控制器将显示默认的后退按钮和自定义操作。

但是当我推翻第三个视图时,自定义操作始终无效。

有谁知道为什么或如何解决这个问题?

堆栈:

主要 - >推(主文件列表) - >推(子视图控制器)(显示默认返回导航栏按钮有箭头,但将自定义操作) - >推...(同样的儿童行动)......->推...

我的零件代码如下:

       NSInteger nmvcCount = 0;
        NSArray* navControllersAry = [self.navigationController viewControllers];

        for(NSInteger j = 0 ; j <= [navControllersAry count]-1; j++){


            if( [[[self.navigationController viewControllers] objectAtIndex:j] isKindOfClass:[FMVC class]]){
             nmvcCount = nmvcCount + 1;
            }

        }

        if(nmvcCount == 1 ){
            // home bar button is using storyboard draw
            self.navigationItem.leftBarButtonItem  = self.homeBarBtn;

        }else{
           self.navigationItem.leftBarButtonItem  = nil;
            [self.navigationItem.backBarButtonItem setTarget:self];
            [self.navigationItem.backBarButtonItem setAction:@selector(popAndOtherProcess:)];

        }

 }

 ....

 -(void) popAndOtherProcess:(id)btn{
  NSLog(@"it work");
 }
非常感谢你。

1 个答案:

答案 0 :(得分:0)

您可以尝试以下代码:

UIBarButtonItem *backButton = [[UIBarButtonItem alloc] 
                           initWithTitle:@"Flip"                                            
                           style:UIBarButtonItemStyleBordered 
                           target:self 
                           action:@selector(backView:)];
self.navigationItem.rightBarButtonItem = backButton;

使用方法如:

-(IBAction)backView