Ios 创建TableviewController并显示它

Ios 创建TableviewController并显示它,ios,objective-c,uitableview,Ios,Objective C,Uitableview,我正在开发IOS messanger应用程序,我有收件箱(tableview),其中有单元格(对话),当我选择一个对话时,我想展示这个对话(tableviewController充满消息),但我不喜欢展示这个控制器需要多少时间。所以我的想法是在选择对话之前创建整个控制器(tableviewController充满消息)对象,然后只需推送它们。我第一次选择对话时,它是空白的,返回并再次选择后,它就工作了。问题很明显,一些变量是在viewDidLoad方法中初始化的。我试图将它们移动到init方法,

我正在开发IOS messanger应用程序,我有收件箱(tableview),其中有单元格(对话),当我选择一个对话时,我想展示这个对话(tableviewController充满消息),但我不喜欢展示这个控制器需要多少时间。所以我的想法是在选择对话之前创建整个控制器(tableviewController充满消息)对象,然后只需推送它们。我第一次选择对话时,它是空白的,返回并再次选择后,它就工作了。问题很明显,一些变量是在viewDidLoad方法中初始化的。我试图将它们移动到init方法,但每次对话都是空白的。 你有这方面的经验吗?任何暗示都将不胜感激。
谢谢你

我觉得你在做过早的优化。创建和推送一个表视图控制器应该需要很短的时间。如果需要更长的时间,就有问题了。您是从远程服务器加载会话数据还是什么


您可能需要使用仪器来确定是什么花费了额外的时间并导致了延迟。然后,您可以专注于实际原因,而不是猜测。

在充满消息的tableviewController中:

.h文件:

@property (nonatomic, assign) BOOL firstAppear;
.m文件

self.firstAppear = NO; //in init method

- (void)viewWillAppear:(BOOL)animated{
    [super viewWillAppear:animated];
    if (self.firstAppear) {
        //add a indicator view here
    }
}

- (void)viewDidAppear:(BOOL)animated{
    [super viewDidAppear:animated];
    if (self.firstAppear) {
        //get tableView data here, then [tableView reloadData] to show data
        //remove the indicator
        self.firstAppear = NO;
    }
}

你能给我们看一些代码吗。这样就很容易弄明白了。好吧,这帮我弄明白了。