在块中显示下一个ViewController

时间:2014-01-31 12:37:58

标签: ios objective-c objective-c-blocks

我有下一个简单的代码,用于从服务中下载信息。

UIViewController *nextController;

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

当请求返回成功时,我需要显示下一个视图。 我想知道 - 这段代码是正确的,或者我必须在另一个地方创建和显示viewcontroller,而不是在块中?

由于

1 个答案:

答案 0 :(得分: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];
    }

}