开发者

what's called after returning from presentModalViewController / dismissModalViewControllerAnimated:

to show a modal uiview out of my mainView I use:

[self presentModalViewController:myController animated:YES];

and in MyController I close that view with:

[self dismissModalViewControllerAnimated:YES];

But how can I know in the mainView that the modal was finished (to redraw my table)? Currently I set a local variable to YES in my mainView after starting the modal view an react on viewWillAppear:

[self presentModalViewController:myController animated:YES];
_reloadTableData = YES;

-(void)viewWillAppear:(BOOL)animated {
   [super viewWillAppear:animated];
   if (_reloadTableData) {
     _reloadTableData = NO;
     [_tableView reloadData];
   }
开发者_开发问答}

Is there a better way to do so ?


Generally speaking, it's not appropriate to dismiss the modal view by the modal view itself.

Instead, you should set your main view as the delegate of the modal view. When you modal view finishes its task, it can let its delegate know and let its delegate dismiss it. This is the very common so-called delegate design pattern in Objective-C.

btw, you may want to consult with some code samples to gain a better understanding of this delegate pattern. I suggest you take a look at one of Xcode's default templates - the Utility Application template. It has a very succinct and simple and straightforward delegate structure built inside.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜