-3

通常,点击后退按钮会带我到上一个视图控制器,但我想要去其他视图控制器时,我点击返回按钮.so这就是我所做的:转到其他一些ViewController上点击导航后退按钮

- (void)viewWillDisappear:(BOOL)animated 
{ 
    [self.navigationController popToViewController:[self.navigationController.viewControllers objectAtIndex:anyPreviousIndex] animated:YES]; 
    [super viewWillDisappear:animated]; 
} 

但它不会工作。 有人对此有所了解吗?我很欣赏任何建议!

+3

您可以创建自己的后退按钮,并在该按钮的事件中编写代码。 – Bhupesh 2014-08-29 09:40:38

+0

不可能在默认导航栏后退按钮,你必须使用UIButton – Mohit 2014-08-29 09:44:21

+0

@GenieWanted谢谢。我有一个特定的条件,我必须这样做 – John 2014-08-29 09:44:49

回答

0

试试这个哥们

-(void) viewWillDisappear:(BOOL)animated { 

    if ([self.navigationController.viewControllers indexOfObject:self]==NSNotFound) { 

     NSLog(@"Back Pressed"); 

    } 
    [super viewWillDisappear:animated]; 
} 

OR

-(void) viewWillDisappear:(BOOL)animated { 


    if ([self.navigationController.viewControllers containsObject:self] == NO) { 

     NSLog(@"Back Pressed"); 

    } 

    [super viewWillDisappear:animated]; 
} 
2

您可以使用此代码,在你的viewWillAppear中调用这个函数,

- (void)AddBackButtonForiPhone { 

    self.navigationItem.hidesBackButton = YES; 

    [backButtonView removeFromSuperview]; // It is UIView 

    if (backButtonView) { 
     [backButtonView release]; 
     backButtonView = nil; 
    } 
    if (gblAppDelegate.portrait) { 
     backButtonView = [[UIView alloc] initWithFrame:CGRectMake(10,6,80,30)]; 
    }else{ 
     backButtonView = [[UIView alloc] initWithFrame:CGRectMake(10,0,80,30)]; 
    } 

    NSString *strText = @"Back";//self.strPreviousTitle; 

    UIButton *btnBack = [[UIButton alloc] initWithFrame:CGRectMake(2, 0, 80, 27)]; 

    [btnBack setTitle:strText forState:UIControlStateNormal]; 
    [btnBack setTitleEdgeInsets:UIEdgeInsetsMake(0, -16, 0, 0)]; 
    [btnBack setImageEdgeInsets:UIEdgeInsetsMake(0, -16, 0, 0)]; 
    [btnBack setImage:[UIImage imageNamed:@"left_arrow"] forState:UIControlStateNormal]; 
    btnBack.titleLabel.font = [UIFont fontWithName:@"HelveticaNeue-Light" size:17]; 
    [btnBack addTarget:self action:@selector(btnBack:) forControlEvents:UIControlEventTouchUpInside]; 

    [backButtonView addSubview:btnBack]; 

    [btnBack release]; 

    [self.navigationController.navigationBar addSubview:backButtonView]; 
} 

和viewWillDisappear使用此代码。

- (void)viewWillDisappear:(BOOL)animated { 
    [super viewWillDisappear:animated]; 
    [backButtonView removeFromSuperview]; 
    //[gblAppDelegate ShowMainMenu]; 
} 

- (void)btnBack:(UIButton *)sender { 
    // write your pop logic here 
}