相关疑难解决方法(0)

为什么我的UIViewController不在响应链中来查看它?

我编写了一个UIViewController的子类,它以编程方式创建一个视图,而不是从NIB文件加载它.

它有一个简单的loadView方法:

- (void)loadView
{
    UIScrollView *mainScrollView =
        [[UIScrollView alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
    self.view = mainScrollView;
    [mainScrollView release];
}
Run Code Online (Sandbox Code Playgroud)

...然后我会进行大量的初始化viewDidLoad,如文档所述.一切正常,我可以看到包含自定义视图的滚动视图.

我需要一个UIViewController来拥有视图,因为它是UINavigationBar工作流的一部分.由于我有一个控制器对象,我宁愿它做控制器的东西.

那么问题是我的视图控制器似乎不在响应链中. touchesBegan:withEvent:如果我在根视图或子视图中定义它,则调用它,但如果它在视图控制器本身中则不被调用.

Apple事件处理文档明确提到视图控制器应该在响应者链中.UIViewController文档没有说明除了将根视图分配给self.view属性之外所需的额外步骤,正如我上面所做的那样.UIResponder文档声称UIView应该弄清楚它是否有控制器并将事件传递给它.UIScrollView文档什么都没说.

我还尝试userInteractionEnabled:了所有视图和子视图的各种设置,没有运气.

我错过了什么?

iphone objective-c uiscrollview uiviewcontroller uikit

2
推荐指数
1
解决办法
6549
查看次数