2011-02-09 4 views
1

사용자가 경고보기에 표시된 사용자 지정 "뒤로"단추를 누를 때 이전보기 컨트롤러 (내 탐색 컨트롤러 스택에 있음)에 대한 뒤로 탐색에 문제가 있습니다. 여러 가지 방법으로 시도했지만 시도 할 수 없었습니다. 버튼이 두드려지면 애플리케이션은 마치 (사용자가 "cancelButton"을 누를 때처럼) 경고를 울린 컨트롤러로 돌아 간다. 뷰 컨트롤러의 코드 내부에 난 다시 이동하려고 다음 액션을 호출,경고보기 단추에서 뒤로 탐색

UIAlertView *alert = [[UIAlertView alloc] 
     initWithTitle:@"XXXXXX" 
     message:@"" 
     delegate:self 
     cancelButtonTitle:@"OK" 
     otherButtonTitles:@"Back", nil]; 
    [alert show]; 
    [alert release]; 

다음 :

가있는 viewDidLoad에서, 내가 가진 경고를 팝업

: 는이 샘플 코드와 나를 이해 수 있기를 바랍니다 :

- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex{ 
if (buttonIndex == 1) 
{ 
    [self.navigationController popViewControllerAnimated:YES]; 
}} 

전체 코드가 실행되고 디버그 오류가 없습니다. 문제를 제대로 설명하지 못했다면 알려주십시오. 더 잘 해보겠습니다. (나는 스페인어이고 나의 영어는 최고가 아니다). 미리 감사드립니다.


내 문제가 해결 어렵게 될 수 있음을 보여주기 위해, 더 나은 그것을 설명하려고합니다 ... 난 네비게이션 컨트롤러가

, 즉 확정 순간에, 보여줍니다 탭 막대가있는보기. 네비게이션 컨트롤러 내부에 탭 바 컨트롤러를 구현할 방법이 없다는 것을 알고있을 수 있으므로 탭 바를 삽입하는 "사용자 정의 컨트롤러"를 사용했습니다.

그런 다음 탭 막대가있는보기에서 (내 안에 이미 일부 하위보기가 추가되어 있음) 탭 막대가없는보기로 돌아가 (경고 단추 클릭) 이전보기가 될 수 있도록 이동하려고합니다 내비게이션 막대에서 뒤로 버튼을 눌렀을 때 볼 수 있듯이 내비게이션 스택에 ...

지금은 더 분명해 지거나 나는 당신을 더 혼란스럽게했는지는 알 수 없습니다. 시도해 볼 수 있습니다. 원하는 경우 컨트롤러 다이어그램을 만들 수 있습니다. 도움 주셔서 감사합니다.

+0

설명이 충분합니다. 누가 도와 줄 수 있는지 알아 보겠습니다. –

+0

'self.navigationController'는'nil'이 아닌가요? 그리고 네비게이션 컨트롤러에는 이미 일부 뷰 컨트롤러가 있습니까? – EmptyStack

+0

나를 위해 잘 작동합니다. 보기 컨트롤러를 밀고있는 코드를 확인하십시오. – Max

답변

0

별도의 스레드에서 시도합니다.

- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex{ 
if (buttonIndex == 1) 
{ 
    [self performSelectorInBackground:@selector(newThreadMethod) withObject:nil]; 
} 
} 
-(void)newThreadMethod{ 
    [self performSelectorOnMainThread:@selector(go) withObject:nil waitUntilDone:NO]; 
} 
-(void)go{ 
     [self.navigationController popViewControllerAnimated:YES]; 
    } 

그러나 올바른 방법은 아닙니다. 그러나 당분간 그것은 당신을 도울 것입니다.

+0

코드가 내 것과 같은 결과를 가져올까 봐 걱정됩니다. 어쨌든, 고마워요! – GDel

0

탭바 부분에 대해 navControllers를 tabController와 병합했습니다. 탭 표시 줄 컨트롤러는 다이어그램의 맨 위에 있어야하며 각 탭 표시 줄 항목의보기 컨트롤러 대신 첫 번째 탭 표시 줄 항목에 특별히 navControllers를 사용하십시오. 첫 번째 viewDidLoad의 탭 표시 줄을 숨기고 필요할 때 숨기기를 해제하십시오.

관련 문제