2012-08-10 6 views
3

다른 뷰 컨트롤러에서 viewController를 테이블 뷰 셀에 대한 푸시를 통해 시작합니다. 이제 두 번째보기 컨트롤러에서 컨트롤을 주로 테스트 필드가 많습니다. 두 번째보기 컨트롤러에서 제공되는 기본 뒤로 단추를 사용하여 첫 번째보기 컨트롤러의 제목이 될 것이므로 기본으로 말한 것처럼 마음에 계속 머 금고 있습니다. 그래서 내 자신의 단추를 뒤로 만들고 싶지 않습니다. 두 번째보기 컨트롤러에서. 따라서 두 번째보기 컨트롤러가 종료되거나 사라지거나 사라지는 것을 감지하고 특정 조건에 따라 원래의 호출자보기 컨트롤러로 돌아 가지 않도록합니다. 원래 여기에서 수행 할 수 있다고 가정했습니다.화면이 사라지는 것을 멈추기

-(void) viewWillDisappear:(BOOL)animated { 
    if ([self.navigationController.viewControllers indexOfObject:self]==NSNotFound) 
    { 
     // So back button was pressed on the second view controller, so how do I stop it 
     // here from going back to the original view controller. 
    } 
} 

또는 어떻게해야합니까? 뷰 컨트롤러 반환 형식 BOOL 메서드를 호출하고 중지 할 찾을 수 없습니다.

감사합니다.

+0

을 그래서 당신이 원하는 수행

이 줄은 당신이 원하는 경우에 따라서 뷰를 닫습니다 수있을 것입니다 만든 기능

self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemCancel target:self action:@selector(closeBtn)]; 

호출 버튼과 닫기 버튼을 대체합니다 뒤로 버튼을 활성화/비활성화하려면? –

+1

아니, Im이 객관적으로 새롭기 시작한 이래로, 뷰가 사라지고 사라지는 것을 감지 할 때이를 감지하여 내 자신의 커스텀 뒤로 버튼을 만들지 않고 같은 뷰에서 머물러 있기를 바란다. nab 컨트롤러. –

+1

분명히 아래 답변을 기반으로 다른 방법이 있지만 사용자 지정 단추를 만드는 것처럼 보입니다. –

답변

7

그 방법은 viewShouldDisappear가 아니라 viewWillDisappear입니다. 따라서 Apple은 그 시점에서보기가 사라지지 않도록하지 않을 것입니다. 그리고 사용자의 관점에서 볼 때 뒤로 버튼을 눌러 실제로 다시 가져와야합니다. 대신 허용되지 않는 상황에서 뒤로 버튼을 숨길 수 있습니다.

+0

두 번째보기 컨트롤러에서 편집 된 내용을 기반으로 뒤로 버튼을 사용 중지하고 사용하도록 설정했는데 실제로 설명이 포함 된 알림을 먼저 표시하려고합니다. . 그래서 내가 돌아가는 것을 취소하는 방법을 원해. 사용자가 무엇이 잘못되었는지, 뒤로 버튼이 활성화 된 이유 또는 내 텍스트 필드의 이벤트에 경고를 연결하는 대신. –

+1

글쎄, 나는 당신의 유일한 옵션은 자신의 뒤로 단추 (setLeftBarItem)를 만들고 자신의 루틴을 가리키는 것이라고 생각합니다. 네비게이션 스택의 부모보기 컨트롤러에서 그 이름을 가져 와서 이전과 같은 이름으로 지정할 수 있습니다. – mackworth

+0

덕분에 @macworth 분명히 당신은 내가 이것에 대해 새롭다 고 말할 수 있었고 정말 언젠가는 반환 유형이 BOOL 인 곳에서 볼 수있는 다른 유형의 이벤트처럼 취소 할 수있는 언로드에 대한 뷰 이벤트가 있기를 바랬다. NO를 돌려 주면 쉽게 알 수 있습니다. –

0

죄송합니다. 영어가 능숙하지 않으므로 긴 텍스트를 읽는 것이 조금 어렵습니다. 버튼을 사용하지 않고 돌아가고 싶을뿐입니다. NavigationController에는 이전 뷰로 돌아갈 수있는 메서드가 있습니다.

+0

올바른 @Lin, 나 자신의 뒤로 버튼을 만들지 않고 싶다면 기본 뒤로 버튼을 멈추고 싶습니다. –

+0

기본 돌아 가기 단추의 동작을 변경 하시겠습니까?나는 방법이있다 : 버튼을 기본 버튼에 표시 할 수 없도록 설정하고, 원하지 않는 것을 수행 한 다음, 기본 버튼을 사용하지 않으려면 사용 가능하게 설정하고, 되돌릴 수 없다면 사용 불가능하게 설정하십시오. 기본값으로 –

+0

Lin, @ mackworth의 의견에 따라 원하는 작업을 수행 할 수 없다고 생각합니다. 따라서 사용자 정의 버튼을 사용할 것입니다. –

0

사용자 정의 뒤로 버튼을 만들고 self.navigationItem.hidesBackButton=YES 사용자 정의 뒤로 단추에 대상을 추가하고 원하는대로 사용하십시오. 보기를 이동하려면 [self.navigationController popViewcontroller]을 사용할 수 있습니다.

1

보기 컨트롤러가 닫히지 않도록 할 수는 있지만 에뮬레이트 할 수는 없습니다.

- (void) closeBtn 
{ 
    bool shouldClose=true; 
    // Your conditions here 
    if (shouldClose) [self dismissViewControllerAnimated:YES completion:nil]; 
} 
관련 문제