-3

일반적으로 뒤로 버튼을 누르면 이전보기 컨트롤러로 이동하지만 뒤로 버튼을 누르면 다른보기 컨트롤러로 이동하려고합니다.다른 뷰 컨트롤러로 가기 탭 내비게이션 뒤로 가기

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

하지만 작동하지 않습니다. 누군가 그것에 대해 어떤 생각을 갖고 있습니까? 어떤 제안에 감사드립니다!

+3

자신 만의 뒤로 버튼을 만들고 해당 버튼 이벤트에 코드를 작성할 수 있습니다. – Bhupesh

+0

기본적으로 불가능합니다. 내비게이션 막대의 뒤로 버튼 UIButton을 사용해야합니다. – Mohit

+0

@GenieWanted 감사합니다. 나는 특정 조건을 가지고 있으며 이것을해야만한다 – John

답변

0

이 야를 시도

-(void) viewWillDisappear:(BOOL)animated { 

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

     NSLog(@"Back Pressed"); 

    } 
    [super viewWillDisappear:animated]; 
} 

또는

-(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 
}