在我的基于导航的应用程序中,有一个按钮,如果按下该按钮,则会将视图更改为detailViewController。在这里,用户可以设置几个选项。其中一个选项是bool值。当我从detailViewController返回时,我怎么能看到这个bool值是什么?
答案 0 :(得分:4)
创建protocol(DetailViewDelegate
?)并在DetailViewController
中创建delegate媒体资源。实例化视图控制器时,将delegate属性设置为self
并使用该属性将消息发送回主视图控制器。唯一棘手的部分是你需要将delegate属性声明为“assign”,这样就不会在详细视图和主视图之间创建一个retain循环。
DetailViewController.h:
@class DetailViewController; // Forward Declaration.
@protocol DetailViewDelegate
- (void)detailViewController:(DetailViewController *)controller didChangeBool:(BOOL)theBool;
@end
@interface DetailViewController : UIViewController {
id <DetailViewDelegate> delegate;
}
@property (assign) id <DetailViewDelegate> delegate;
@end
这只是界面,但它应该让你大部分时间都在那里。设置详细信息视图的delegate
属性,并在主视图中实现detailViewController:didChangeBool:
方法,这就是它。
回答评论中的问题:
delegate
属性设置为self
。detailViewController:didChangeBool:
方法添加到主视图控制器。