gpt4 book ai didi

objective-c - 从 subview 中推送 Controller

转载 作者:行者123 更新时间:2023-11-28 23:04:02 25 4
gpt4 key购买 nike

本质上,从导航 Controller 的 subview 推送新 View Controller 的正确方法是什么。

问题是导航 View 的 subview 不继承 self.navigationController(它的 nil)

原因是我需要单独的导航栏 View 和主视图 Controller ,但两者都需要推送新 Controller 。

如果有人能告诉我正确的方法,我愿意改变这个模型。

还有:

AppDelegate *del = (AppDelegate *)[UIApplication sharedApplication].delegate
[del.navigationController pushViewController:vc animated:YES];

不工作,因为委托(delegate) Controller 是 nil

最佳答案

在 UIView 上创建以下类别。

@interface UIView (GetUIViewController)
- (UIViewController *)viewController;
@end

@implementation UIView (GetUIViewController)

- (UIViewController *)viewController;
{
id nextResponder = [self nextResponder];
if ([nextResponder isKindOfClass:[UIViewController class]]) {
return nextResponder;
} else {
return nil;
}
}
@end

现在从 subview 中获取 super View 。

mySuperView = [mySubView superview];

然后从创建的类别中调用方法。

mySuperViewController = [mySuperView viewController];

现在,使用这个 viewController,您可以访问 navigationController。

我没有尝试过上面的代码和方法,但我希望它能起作用。

关于objective-c - 从 subview 中推送 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9565897/

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