Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/113.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 在iOS中从parentViewController调用SEL_Objective C_Ios_Uiviewcontroller - Fatal编程技术网

Objective c 在iOS中从parentViewController调用SEL

Objective c 在iOS中从parentViewController调用SEL,objective-c,ios,uiviewcontroller,Objective C,Ios,Uiviewcontroller,我有一个ViewController,在其中我创建了一个模态ViewController。我在模式中有一个SEL值,当它从父对象实例化时,我设置了该值 setDateViewController.selectorName = @selector(myMethod:); 在我的模态中,我试着把这个SEL称为: [[self parentViewController] performSelector:self.selectorName withObject:selectedDate afterDe

我有一个ViewController,在其中我创建了一个模态ViewController。我在模式中有一个SEL值,当它从父对象实例化时,我设置了该值

setDateViewController.selectorName = @selector(myMethod:);
在我的模态中,我试着把这个SEL称为:

[[self parentViewController] performSelector:self.selectorName withObject:selectedDate afterDelay:.5]; 
{selectedDate}显然是我的模式中的一个值

我没有得到任何错误或堆栈,但是,我的父对象上的这个SEL(方法)从未被调用。出于某种原因,我认为这应该行得通,但有些事情告诉我,我偏离了正轨


谢谢。

也许你会考虑给你的模态添加一个委托协议,允许它在父对象上调用方法。

快速(未经测试)示例:


我猜[self parentviewcontroller]没有返回任何内容。 尝试UiviewController*v=[self-parentviewcontroller];并检查是否为零。很可能应该是零。否则,如果它指向另一个不同类的对象,那么它就会崩溃。请做一件事。您应该设置需要调用的对象和方法。如果有任何问题,它将解决任何问题

setDateViewController.selectorDelegate = self;
setDateViewController.selectorName = @selector(myMethod:);
从父类中这样调用。因此,您可以动态地指定方法,并且要调用的对象提供了更大的灵活性

使用,, [selectorDelegate性能选择器:self.selectorName with Object:selectedDate afterDelay:.5]


这应该可以解决任何问题

嗯。。。我以前见过这个。。。由于某种原因,它不适合我。。。希望它尽可能的通用。。。但是,从我看来,这似乎是事实上的标准。。。谢谢您也可以使用块回调。@Fabian——我已经接受了答案,但我对您的建议很好奇(总是在寻找新的方法来做事情);要在Obj-c中详细说明吗?的答案向您展示了如何实现块回调。SomeObjectBlockDelegate类有两个块作为IVAR。这就是你需要做的。是
[self-parentViewController]
你想要的视图控制器还是
UINavigationController
实例?[self-parentViewController]是我想要的控制器。。。这不是一个UINav实例
MyController *controller = [[MyController alloc] init];
controller.delegate = self;
[self presentModalViewController:controller animated:YES];
setDateViewController.selectorDelegate = self;
setDateViewController.selectorName = @selector(myMethod:);