ios - addtarget到另一个视图控制器中的按钮

时间:2011-10-19 21:51:48

标签: ios uiviewcontroller uibutton

为什么这不起作用?我希望新视图控制器中的closeBtn在当前视图控制器中调用一个名为dismiss的方法。

NewViewController *newVC = [[NewViewController alloc] initWithNibName:@"NewViewController" bundle:[NSBundle mainBundle]];

[newVC.closeBtn addTarget:self action:@selector(dismiss:) forControlEvents:UIControlEventTouchUpInside];

在当前视图控制器中永远不会调用dismiss:方法。 closeBtn在NewViewController中正确设置为属性,并链接在.xib文件中。

2 个答案:

答案 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中。

希望有所帮助。