Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
iOS自定义导航返回栏按钮操作不起作用_Ios_Objective C_Navigation - Fatal编程技术网

iOS自定义导航返回栏按钮操作不起作用

iOS自定义导航返回栏按钮操作不起作用,ios,objective-c,navigation,Ios,Objective C,Navigation,我尝试更改导航返回栏按钮 我的代码将推送self-view控制器 所以我需要在按下第二个视图控制器时,导航返回栏按钮(左栏按钮)是显示主页图像栏按钮项 推送后,第三视图控制器将显示默认的backbarbutton和自定义操作 但是当我推过第三个视图时,自定义操作总是不起作用 有人知道为什么或者如何解决这个问题吗 堆栈: 主->推送(主文件列表)->推送(子视图控制器)(显示默认的后退导航栏按钮有箭头,但将自定义操作)->推送…(相同的子操作)…->推送 我的零件代码如下: NSIn

我尝试更改导航返回栏按钮

我的代码将推送self-view控制器

所以我需要在按下第二个视图控制器时,导航返回栏按钮(左栏按钮)是显示主页图像栏按钮项

推送后,第三视图控制器将显示默认的backbarbutton和自定义操作

但是当我推过第三个视图时,自定义操作总是不起作用

有人知道为什么或者如何解决这个问题吗

堆栈:

主->推送(主文件列表)->推送(子视图控制器)(显示默认的后退导航栏按钮有箭头,但将自定义操作)->推送…(相同的子操作)…->推送

我的零件代码如下:

       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");
 }
NSInteger nmvcCount=0;
NSArray*navControllersAry=[self.navigationController视图控制器];

对于(NSInteger j=0;j您可以尝试以下代码:

UIBarButtonItem *backButton = [[UIBarButtonItem alloc] 
                           initWithTitle:@"Flip"                                            
                           style:UIBarButtonItemStyleBordered 
                           target:self 
                           action:@selector(backView:)];
self.navigationItem.rightBarButtonItem = backButton;
-(IBAction)backView
使用如下方法:

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

更清楚一点。我们无法获得您想要的。您分配给“后退”按钮的自定义操作是什么。?我需要自定义操作,但它不是输入popAndOtherProcess方法。简而言之,在同一视图控制器中,某些情况下我需要“后退”按钮是使用“左栏”按钮项替换。某些情况下,需要“左栏”按钮使用默认的back bar按钮(有箭头)但自定义back bar按钮操作,项目被取消。现在,popAndOtherProcess始终不会进入。