【问题标题】:segue destinationViewController not detecting destiation methodsegue destinationViewController 未检测到目标方法
【发布时间】:2012-08-09 15:41:31
【问题描述】:

我有一个故事板并使用 segues 在视图之间导航

我正在使用以下代码

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {

    if ([[segue identifier] isEqualToString:@"thestring"]) {
        [[segue destinationViewController] function1:argument1:argument2];
        [[segue destinationViewController] function2:argument1:argument2];

    }
}

由于某种原因,它将 function1 识别为目标视图控制器的成员但不是 function 2 ,它向我显示当前错误:

no known instance method for selector 'function2'

function2 被分配为目标视图控制器的公共函数(前面带有“-”),它也在目标视图控制器的代码中使用。

为什么它没有检测到它?

谢谢

已编辑

头部声明如下

-(void)function2:(NSString*)argument1:(NSString*)argument2;

【问题讨论】:

  • 您能否发布您的实际方法签名(目标控制器中的声明)?
  • 你有没有在你的标题中声明它并将你的标题导入到你的类中?
  • @alladinian 我添加了方法声明
  • @Dustin ,我在我的标题中声明了它(并且它正在目标控制器中使用)并且它被正确导入我的类(检测到 function1)

标签: objective-c ios5 storyboard segue uistoryboardsegue


【解决方案1】:

使用强制类型转换告诉编译器 destinationController 实际上是哪个类的实例。

【讨论】:

  • 谢谢 Philip,我是 iOS 开发新手,你能给我一个演员表的例子吗?
  • 跟iOS无关,只是基础的C语言编程。类似:[(MyControllerClassName *)[segue destinationViewController] function2:argument1:argument2];.
  • 我是iOS开发的新手,在网上搜索了一个例子,找不到例子,你能给我一个简单的例子吗?
  • 我之前的评论中有一个示例。插入您自己的类名,它应该可以工作。 (我无法猜出你叫什么视图控制器。)
  • 实际上这是一个完全不同的问题,我只是忘记在当前目标文件中包含目标类头文件。当我尝试输入 MyControllerClass Name 时,我发现了这一点。谢谢!
猜你喜欢
  • 2015-04-18
  • 2018-10-12
  • 1970-01-01
  • 2014-12-23
  • 1970-01-01
  • 1970-01-01
  • 2021-08-28
  • 2020-01-16
  • 1970-01-01
相关资源
最近更新 更多