【问题标题】:Cannot Send Message to Other ViewController无法向其他 ViewController 发送消息
【发布时间】:2014-01-30 05:40:07
【问题描述】:

当我需要从FlipsideViewController.mMainViewController.m 发送消息时,我在 Xcode 中搞乱创建...一些东西...。除了,当我这样做时,我发送消息的 ViewController 不会检测到该方法存在,尽管我将方法放在MainViewController.h 中。方法是这样的:

- (void)setAutosave:(BOOL)boolee {
    _autosave = boolee;
}

我已经将 MainViewController 导入到 FlipsideViewController 中,但正如我所说的 ([NSMainViewController setAutosave:_autosave];),它只是抛出一个错误:

No known class method for selector 'setAutosave:'

我这样做是因为FlipsideViewController 中有一个分段控件,它告诉autosave 是打开还是关闭,但它需要将它的值发送到另一个 ViewController。

我真的很难过,不胜感激。

【问题讨论】:

    标签: objective-c methods call


    【解决方案1】:

    MainViewController是一个类,你不能从一个类中访问实例方法。

    你可以给 FlipsideViewController 添加一个属性,例如:

    @property (weak, nonatomic) MainViewController *mainViewController;
    

    将您的 MainViewController 实例分配给 mainViewController(如何分配取决于您的两个视图控制器之间的关系),然后您可以通过 [self.mainViewController setAutosave:_autosave]; 调用该方法。

    【讨论】:

    • 哦,好的。您能否解释一下如何将自动保存变量从 FlipsideViewController 发送到 MainViewController?
    • 太棒了。看起来它应该可以工作,但 Xcode 尝试再次将其更正为 MainViewController 而不是 mainViewController。但是,当它发生时,它是同样的错误......
    • 对不起,self.mainViewController
    • 哇,它是固定的!谢谢!
    猜你喜欢
    • 1970-01-01
    • 2016-08-09
    • 1970-01-01
    • 2022-01-07
    • 2021-09-18
    • 1970-01-01
    • 2013-10-31
    • 2021-09-04
    相关资源
    最近更新 更多