Iphone 什么';从presentModalViewController/DismissModalviewcontroller返回后调用的已初始化:

Iphone 什么';从presentModalViewController/DismissModalviewcontroller返回后调用的已初始化:,iphone,objective-c,cocoa-touch,uiview,uikit,Iphone,Objective C,Cocoa Touch,Uiview,Uikit,要从我的主视图中显示模态uiview,我使用: [self presentModalViewController:myController animated:YES]; 在MyController中,我使用以下命令关闭该视图: [self dismissModalViewControllerAnimated:YES]; 但是我怎么能在mainView中知道模态已经完成(重新绘制我的表)? 当前,在启动模式视图后,我在mainView中将局部变量设置为YES,此时将显示react on vie

要从我的主视图中显示模态uiview,我使用:

[self presentModalViewController:myController animated:YES];
在MyController中,我使用以下命令关闭该视图:

[self dismissModalViewControllerAnimated:YES];
但是我怎么能在mainView中知道模态已经完成(重新绘制我的表)? 当前,在启动模式视图后,我在mainView中将局部变量设置为YES,此时将显示react on view:

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

-(void)viewWillAppear:(BOOL)animated {
   [super viewWillAppear:animated];
   if (_reloadTableData) {
     _reloadTableData = NO;
     [_tableView reloadData];
   }
}

有更好的方法吗?

一般来说,用模态视图本身来忽略模态视图是不合适的

相反,您应该将主视图设置为模态视图的代理。当模态视图完成其任务时,它可以让其代理知道并让其代理解除它。这是Objective-C中非常常见的所谓委托设计模式


顺便说一句,您可能需要参考一些代码示例,以便更好地了解此委托模式。我建议您看看Xcode的一个默认模板——实用程序应用程序模板。它内部构建了一个非常简洁、简单、直接的委托结构。

一般来说,不适合用模态视图本身来忽略模态视图

相反,您应该将主视图设置为模态视图的代理。当模态视图完成其任务时,它可以让其代理知道并让其代理解除它。这是Objective-C中非常常见的所谓委托设计模式


顺便说一句,您可能需要参考一些代码示例,以便更好地了解此委托模式。我建议您看看Xcode的一个默认模板——实用程序应用程序模板。它内部构建了一个非常简洁、简单、直接的委托结构。

@middaparka:非常同意:-)diwup谢谢。现在我的代码对另一个看起来很熟悉。@middaparka:非常同意:-)diwup谢谢。现在我的代码对另一个看起来很熟悉。