【发布时间】:2012-07-20 17:23:48
【问题描述】:
从 FirstVC 屏幕中打开另一个屏幕的正常方法是这样的:
SecondVC *secondVC = [[SecondVC alloc] initWithNibName:@"SecondVC" bundle:nil];
secondVC.delegate = self; //needed to dismiss
[self presentModalViewController: secondVC animated: YES];
而SecondVC.m 必须导入一个协议,该协议声明调用关闭 SecondVC 的方法
所以我总是要创建一个协议文件SecondVCProtocol.h,它基本上看起来像这样:
@protocol SecondVCProtocol <NSObject>
-(void)secondVCDidFinish;
@end
然后在SecondVC.m我需要导入这个SecondVCProtocol.h文件,现在终于可以调用了
[self.delegate secondVCDidFinish]
我刚刚完成了另一个 Android 应用程序,回到 iOS 世界,我觉得这很麻烦。 - 需要在单独的文件中定义这样的协议并需要使用委托 - 只是为了完成最正常的任务,比如关闭屏幕......
难道没有更简单、不那么复杂的方法吗?还是必须这样做?
例如像 SecondVC 中的 [self dismiss] - 没有委托,没有协议 - 他不是很好吗?
非常感谢!
【问题讨论】:
标签: iphone ios uiviewcontroller delegates