gpt4 book ai didi

ios - 从 UIView 到 UIViewController?

转载 作者:IT老高 更新时间:2023-10-28 12:15:59 24 4
gpt4 key购买 nike

有没有一种内置的方法可以从 UIView 到它的 UIViewController?我知道你可以通过 [self view]UIViewController 到它的 UIView 但我想知道是否有反向引用?

最佳答案

使用 Brock 发布的示例,我对其进行了修改,使其成为 UIView 的类别,而不是 UIViewController,并使其递归,以便任何 subview 都可以(希望)找到父 UIViewController。

@interface UIView (FindUIViewController)
- (UIViewController *) firstAvailableUIViewController;
@end

@implementation UIView (FindUIViewController)
- (UIViewController *) firstAvailableUIViewController {
UIResponder *responder = [self nextResponder];
while (responder != nil) {
if ([responder isKindOfClass:[UIViewController class]]) {
return (UIViewController *)responder;
}
responder = [responder nextResponder];
}
return nil;
}

@end

要使用此代码,请将其添加到一个新的类文件中(我将其命名为“UIKitCategories”)并删除类数据...将@interface 复制到标题中,并将@implementation 复制到.m 文件中。然后在您的项目中,#import "UIKitCategories.h"并在 UIView 代码中使用:

// from a UIView subclass... returns nil if UIViewController not available
UIViewController * myController = [self firstAvailableUIViewController];

关于ios - 从 UIView 到 UIViewController?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1340434/

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