-(void)loginPerform
{
NSLog(@"start to perform segue!");
[self performSegueWithIdentifier:@"SecondPage" sender:self];
NSLog(@"end perform login!");
}
loginPerform函數在回調函數中調用,並且兩個日誌都可以打印,因此performSegueWithIdentifier會執行。但當前視圖不會更改。performSegueWithIdentifier不起作用回調函數?
- view A和view B由Custom Segue關聯。
- 視圖嵌入導航控制器。
順便說一句:我把測試按鈕直接執行segue,它的工作原理。 當loginPerform函數被調用時,下一個視圖總是查看A時點擊測試按鈕。
我不明白whatnd.anybody可以幫助我嗎?
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
}];
}
這是稱爲在回調function.Just 1個打印
- (IBAction)test_click:(id)sender {
[self performSegueWithIdentifier:@"SecondPage" sender:self];
}
這是一個測試按鈕,測試執行賽格瑞的執行功能。它運作良好。
你在寫什麼類的代碼。 UIViewController子類?你能否用更多的代碼來闡述你的問題。 – Divyu
檢查您的segue標識符名稱。它是一樣的嗎? – Rox
調用的回調是什麼線程? – Wain