使用目标c并使用xcode处理ios应用程序。我有一个继承自UIResponder的另一个类的类,它包含一个视图。我在子类中有一个touchesBegan,但只有在调试/开发模式下运行应用程序时才会调用该事件。当我进行制作/发布构建时,触摸事件不会被调用。
// Basic viewcontroller protocol
@protocol SubViewController
- (void)viewDidAppear:(BOOL)animated;
- (void)viewDidDisappear:(BOOL)animated;
- (void)viewWillAppear:(BOOL)animated;
- (void)viewWillDisappear:(BOOL)animated;
- (void)viewDidLoad;
-(UIView *)view;
@end
@interface SubViewController : UIResponder<SubViewController> {
}
/////////////////////////////////////////////////////////////////////////////////
// A custom subview controller
//
@interface mySubViewController : SubViewController {
}
在mysubviewcontroller类中我有
- (void) touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
//some code and magic
}
现在我说在调试中运行它很好但是在发布时忽略了触摸事件。任何提示,想法或问题,以帮助澄清这一点,请说。提前谢谢
编辑:我在文档中看到了这一点“如果你在不调用super(常用模式)的情况下重写此方法,你还必须覆盖其他处理触摸事件的方法,如果只是作为存根(empy)实现。”所以我在所有其他触摸事件中都存根,但发布版本没有变化
答案 0 :(得分:0)
由于您不是子类化UIViewController
(自动执行此操作),您需要手动将响应者添加到响应者链中。
响应者链中UIViewController
的位置在其视图和视图的超级视图之间,因此要获得相同的行为,您需要在视图和管理的控制器中覆盖nextResponder
它。视图应返回控制器,控制器应返回视图的超级视图。