我正在尝试使用我不熟悉的委托来消除模态呈现的视图。我试图让它按照这里看到的苹果文档的方式工作。到目前为止,我的代码如下:
将两个视图放在情节提要上,将第一个视图连接到第二个视图与模态 segue。(到 view2 的 segue 工作正常)
在第二个 viewcontroller/create 方法中创建委托以在返回时调用:
//inside of view2ViewController.h @class view2ViewController; @protocol view2ViewControllerDelegate <NSObject> -(void)goBack:(OptionsViewController *)controller; @end @interface OptionsViewController : UIViewController @property (nonatomic, weak) id <view2ViewControllerDelegate>delegate; - (IBAction)return:(id)sender;//connected to button @end
在 view1ViewController 中实现委托
@interface view1ViewController : UIViewController <view2ViewControllerDelegate>
在 view1Controller.m 中为委托方法 goBack 编写代码
-(void)goBack:(view2ViewController *)controller{ [self dismissViewControllerAnimated:YES completion:nil];}
通过在 view2ViewController.m 中为返回方法编写代码来完成
- (IBAction)return:(id)sender { [self.delegate goBack:self];}
我不确定这段代码哪里出错了。返回方法被调用,但 goBack 没有被调用。我确实阅读了开发人员文档,并认为我理解了,但我想不是......
PS 我将 StackOverflow 上的所有类/变量名称更改为更通用的名称,因此如果变量名称拼写之间存在细微差异,可能是因为我输入了一个错误。