gpt4 book ai didi

iphone - 未调用 Sub-ViewController 上的 TouchesBegan

转载 作者:行者123 更新时间:2023-12-01 19:27:27 24 4
gpt4 key购买 nike

我有一个 ViewController 可以响应一些 touchEvents(touchesBegan、touchesMoved 等)。

我发现当我使用 presentModalViewController: 显示这个 Controller 时,它工作得很好,但我试图将它的 View 添加为另一个 ParentViewController 的 subview ,如下所示:

- (void)viewDidLoad
{
[super viewDidLoad];

//Add SubController
controller = [[SubViewController alloc] initWithNibName:@"SubViewController" bundle:nil];
controller.view.frame = CGRectMake(0, 30, 300, 130);
[view addSubview:controller.view];
[controller release];
}

当我这样做时,它会添加父 View ,但它不再响应触摸事件。有没有办法解决这个问题?

另外,有没有更好的方法来解决这个问题?我知道我可能可以为 subview 使用 View 子类,但它应该使用 Nib,我不知道如何在不使用 ViewController 的情况下处理它。

最佳答案

你是对的,你应该使用 UIView 子类。

从 nib 加载它的最简单方法是在 nib 中包含 subview 。

  • 只需将 UIView 拖放到连接到原始 View Controller 的 View 中即可。
  • 然后选择里面的 View 去身份检查器。这是一张看起来像一张小身份证的卡片。
  • 第一个字段称为自定义类。
  • 在此处输入您的 UIView 子类的名称。

  • 如果您需要对此的引用,只需在原始 View Controller 中创建一个 IBOutlet 并将其连接起来。这样你就可以设置 hidden = YES直到你需要它。

    在您的 UIView 子类中,您可能想要覆盖
    - (void)awakeFromNib这将在 nib 第一次解包时被调用。

    用于设置任何手势识别器等。

    关于iphone - 未调用 Sub-ViewController 上的 TouchesBegan,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6126995/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com