gpt4 book ai didi

objective-c - 使用委托(delegate)团驳回 View 不起作用

转载 作者:行者123 更新时间:2023-11-29 04:32:51 25 4
gpt4 key购买 nike

我正在尝试使用我刚接触过的委托(delegate)来驳回模态呈现的 View 。我试图让它按照苹果文档here的方式工作。到目前为止我的代码如下:

  1. 将两个 View 都放在 Storyboard上,使用模态转场连接第一个 View 和第二个 View 。 (到 view2 的 segue 工作正常)

  2. 在第二个 View Controller /创建方法中创建委托(delegate),以在返回时调用:

    //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
  3. 在view1ViewController中实现委托(delegate)@interface view1ViewController : UIViewController <view2ViewControllerDelegate>

  4. 在view1Controller.m中编写委托(delegate)方法goBack的代码

    -(void)goBack:(view2ViewController *)controller{
    [self dismissViewControllerAnimated:YES completion:nil];}
  5. 通过在view2ViewController.m中编写返回方法的代码来完成

    - (IBAction)return:(id)sender {
    [self.delegate goBack:self];}

我不确定这段代码哪里出了问题。 return 方法被调用,但 goBack 没有被调用。我确实阅读了开发人员文档,并认为我理解了,但我想没有......

PS 我将 StackOverflow 上的所有类/变量名称更改为更通用,因此如果变量名称拼写之间存在轻微差异,可能是因为我输入错误。

最佳答案

我能尝试的最好的镜头 -

确保您将 SplashViewController 指定为 view2ViewController 的委托(delegate)。

通过代码,您可以这样做(在 SplashViewController m 文件中):

view2ViewController.delegate = self;

或者您可以在 Storyboard上执行此操作。

顺便说一下我不确定将您的函数称为“return”是个好主意。

关于objective-c - 使用委托(delegate)团驳回 View 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11474338/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com