2014-01-31 139 views
0

我有下一個簡單的代碼,用於從服務下載信息。顯示下一個ViewController塊

UIViewController *nextController; 

[request authWithBlock:^(NSDictionary *result, NSError *error) 
{ 
    // Result of auth request 
    if (!nextController) nextController = [UIViewController alloc] init]; 
    [navigationController pushViewController: nextController]; 
}]; 

而且我需要在請求返回成功時顯示下一個視圖。 我想知道 - 這段代碼是正確的,或者我必須創建並顯示viewcontroller在另一個地方,而不是塊?

謝謝

+1

爲什麼要在塊外聲明您的viewcontroller?你只需要他完成 –

+0

嗯,我發現一個缺少的開放支架和一個缺失的右括號。 – nhgrif

+0

托馬斯,當我離開塊ARC可以刪除所有本地變量。我認爲控制器中保存了哪些控制器,但是我可以在另一個塊中創建它。 – Antaresm

回答

1

您的代碼格式是正確的。但是,您可以通過以下方式改進您的代碼:

__weak typeof(self) weakSelf = self; 
[request authWithBlock:^(NSDictionary *result, NSError *error) 
{ 
    // Result of auth request 
    if (!error) 
    { 
     UIViewController *nextController = [UIViewController alloc] init]; 
     // pass result to nexview controller if you want.. 
     [weakSelf.navigationController pushViewController: nextController]; 
    } 

} 
相關問題