相关疑难解决方法(0)

cellForRowAtIndexPath:未调用

我的应用程序有两种状态:登录和未登录,我有以下架构(大大简化):
- ViewController A包含一个搜索框和一个表视图.
- ViewController B,用于登录应用程序.

流程如下:
- 用户未登录;
- A被推入堆栈.在viewWillAppear我检查,如果用户在如果是,一个异步网络请求正在取得,一旦做到这一点登录,该表加载来自网络的数据.但是,由于此时用户未登录,因此表视图为空;
- 用户点击搜索框; 因为他没有登录,B被推(确认后);
- 他在B中成功登录,然后按下弹出B的按钮并再次显示A;
- 在这个时间点,因为他已登录,从viewWillAppear我做异步请求;
- 完成后,我调用reloadData表格视图.

我注意到的numberOfRowsInSection:是调用它并返回正确的结果,但cellForRowAtIndexPath:之后不会调用它并且表保持为空.

我已经检查并reloadData在主线程上调用了.

知道它能是什么吗?因为它让我疯了!

谢谢,
S.

编辑:这是viewWillAppearA 中代码的异步位.

if ([User isLoggedIn]) {
    [self.asyncRequest fetchDataWithCompletionHandler:^(id response, NSError *error) {
        [UIApplication sharedApplication].networkActivityIndicatorVisible = NO;
        if (error) {
            [Utils displayError:error];
        } else {
            self.array = response;

            self.isLoaded = YES;
            [self.tableView reloadData];
            [self.tableView setContentOffset:CGPointMake(0.0f, 0.0f) animated:NO];
        }
    }];
}
Run Code Online (Sandbox Code Playgroud)

我已经检查过异步请求是否成功完成并且 …

iphone uitableview ios

66
推荐指数
9
解决办法
5万
查看次数

标签 统计

ios ×1

iphone ×1

uitableview ×1