-(void)loginPerform
{
NSLog(@"start to perform segue!");
[self performSegueWithIdentifier:@"SecondPage" sender:self];
NSLog(@"end perform login!");
}
loginPerform 함수는 콜백 함수에서 호출되며 두 로그는 모두 performSegueWithIdentifier 실행을 인쇄 할 수 있습니다. 그러나 현재보기는 변경되지 않습니다.performSegueWithIdentifier가 콜백 함수에서 작동하지 않습니까?
- 보기 A 및보기 B는 사용자 정의 세그먼트로 연결됩니다.
- 보기 A 내비게이션 컨트롤러에 내장.
BTW : 테스트 버튼을 직접 눌러 segue를 직접 수행하면 작동합니다. loginPerform 함수가 호출되면 다음 뷰는 항상 테스트 버튼을 클릭하면 표시됩니다.
나는 무슨 일이 일어 났는지 이해하지 못합니다. 누구든지 나를 도울 수 있습니까?
int user_account_delegate(int reqid, char* msg)
{
NSLog(@"DEBUG: login return %s", msg);
int reterr = 0;
if(reqid!=[BLSInstLink getLoginID])
return -1;
/* parse the login result (JSON) */
if(get_json_object_value(msg, KEY_ERROR, VAL_INTEGER, (void*)&reterr)==0)
{
if(reterr==0)
{
NSLog(@"DEBUG: login succeed.");
[BLSInstLink setLogined:YES];
BLSViewController *this = THIS;
[this loginPerform];
}
else
{
NSLog(@"DEBUG: login failed. err=%d", reterr);
[BLSInstLink setLogined:NO];
[BLSInstLink setErrorCode:reterr];
}
}
[[NSNotificationCenter defaultCenter] postNotificationName:NOTIFICATION_LOGINRESULT object:nil];
return 0;
}
이것은 내 자신의 UIViewController에서 구현하는 콜백 함수입니다.
-(void)loginPerform{
NSLog(@"in loginPerform");//1
[self dismissViewControllerAnimated:YES completion:^() {
NSLog(@"start perform page2");//2
[self performSegueWithIdentifier:@"SecondPage" sender:self];
NSLog(@"end perform page2");//3
}];
}
이 1 인쇄
- (IBAction)test_click:(id)sender {
[self performSegueWithIdentifier:@"SecondPage" sender:self];
}
SEGUE이 테스트를 수행하는 테스트 버튼이다 콜백 function.Just 불리는 기능을 수행한다. 잘 작동합니다.
이 코드를 작성하는 클래스는 어떤 종류입니까? UIViewController 서브 클래스? 좀 더 많은 코드로 질문을 상세하게 만들 수 있습니까? – Divyu
segue 식별자 이름을 확인하십시오. 똑같은가요? – Rox
콜백이 호출되는 스레드는 무엇입니까? – Wain