beretis
beretis

Reputation: 909

Creating TableviewController and presenting it

I'm developing IOS messanger app, I have inbox(tableview) in which I have cells(conversations) and when I select a conversation, I would like to present this conversation(tableviewController full of messages), but i dont like how much time it takes to present this controller. So my idea was to create whole controllers(tableviewController full of messages) objects before selecting conversation, and then just push them. First time I select conversation, it is blank, after going back and then selecting it again, it work. Problem is obvious, some variables are initialized in viewDidLoad method. I have tried to move them to init method but then every time conversation was blank. Do you have any experiences with this? Any hint will be appreciated a LOT. Thank you!!!

Upvotes: 0

Views: 46

Answers (2)

simalone
simalone

Reputation: 2768

in tableviewController full of messages:

.h file:

@property (nonatomic, assign) BOOL firstAppear;

.m file

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

Upvotes: 1

Duncan C
Duncan C

Reputation: 131398

It sounds to me like you are doing premature optimization. Creating and pushing a table view controller should take a small fraction of a second. If it's taking longer, something is wrong. Are you loading the conversation data from a remote server or something?

You might want to use Instruments to figure out what is taking extra time and causing a delay. Then you can focus on the actual cause rather than guessing.

Upvotes: 0

Related Questions