为什么这不起作用?我希望新视图控制器中的closeBtn在当前视图控制器中调用一个名为dismiss的方法。
NewViewController *newVC = [[NewViewController alloc] initWithNibName:@"NewViewController" bundle:[NSBundle mainBundle]];
[newVC.closeBtn addTarget:self action:@selector(dismiss:) forControlEvents:UIControlEventTouchUpInside];
在当前视图控制器中永远不会调用dismiss:方法。 closeBtn在NewViewController中正确设置为属性,并链接在.xib文件中。
答案 0 :(得分:3)
创建另一个控制器的对象并在addTarget中指定它。在action参数中提供方法的名称。 即anotherController * obj; [button addTarget:obj action:@selector(MethodName)forControlEvents:UIControlEventTouchDown];
答案 1 :(得分:-1)
通常,这不是处理方法和UI元素的好方法。
然而,你可以做这样的事情,虽然它很难看。
[yourButton addTarget:self action:@selector(yourButtonPressed:) forControlEvent:UITouchUpInside];
- (void) yourButtonPressed:(id)sender {
OtherVC* otherVC = [OtherVC alloc] initWithNibName@"NewViewController"] ...
[otherVC theDesiredMethod];
[otherVC release];
}
这可行,但不是很好你最好将功能移动到适当的VC中。
希望有所帮助。