创建TableviewController并呈现它

时间:2014-03-05 00:54:10

标签: ios objective-c uitableview

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

2 个答案:

答案 0 :(得分:1)

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;
    }
}

答案 1 :(得分:0)

听起来像你在做过早的优化。创建和推送表视图控制器应该只需要一小部分时间。如果花费的时间更长,那就错了。您是从远程服务器加载对话数据还是什么?

您可能希望使用Instruments来确定什么需要额外的时间并导致延迟。然后你可以专注于实际的原因而不是猜测。