出于某种原因,与我的UIButton的互动仅适用一次。我已经通过IBAction和IBOutlet尝试了“addTarget”。我不明白为什么。
上下文:
BaseViewController
- (IBAction) button_touched:(id)sender; //<-- Declared here, but not implemented
- (void)userInputReceived:(BOOL)bSuccess; //<-- Declared here, but not implemented
ViewController1:BaseViewController
- (IBAction) button_touched:(id)sender; //<-- Implemented here
- (void)userInputReceived:(BOOL)bSuccess; //<-- Implemented here
此外,这是我尝试“addTarget”的地方,但这也不起作用(第一次触摸工作,但不是第二次)
在ViewController1(vc1)的“button_touched”方法中,我调用另一个这样的类:
[someOtherClassObject doSomethingWithMyView:self];
该类只是弹出一个消息框,获取用户输入,然后在viewcontroller上回调:
(Inside SomeOtherClass):
-(void)doSomethingWithMyView:(BaseViewController*)vc
{
// Do Something
[vc userInputReceived:TRUE];
}
一旦此工作流程执行一次,按钮触摸再也不会调用“button_touch”方法。无论我做什么,我都无法再次召唤它。
在一个流行的BBS论坛上的一个帖子中,有人提到像这样的问题可能是因为没有你认为你做的对象(vc1),而是另一个它的实例。因此,我在许多地方记录了像NSLog(“instance:%p”,self)这样的实例,它总是一样的。
非常感谢任何想法。这非常令人沮丧。
答案 0 :(得分:0)
试试你的陈述:
[vc userInputReceived:TRUE];
添加行
[[UIApplication sharedApplication].keyWindow makeFirstResponder:vc.view];