updateUIView(_ uiView: UIViewType, context: Context) { DispatchQueue.main.async { uiView.parentViewController 为了方便查找持有该UIView的UIController,我们需要对UIView进行扩展: extension UIView { var parentViewController: UIViewController next } return nil }} 如此,便可以通过下面的代码为展示Sheet的视图控制器注入delegate了 uiView.parentViewController
realm commitWriteTransaction]; UINavigationController *vc = (UINavigationController *)self.parentViewController
,但并不是所有页面都能确保是在同一个容器中,这个情况下ViewController基类提供了以自己为起点的页面跳转: 以ViewController自己为基础,可以得到自己的父控制器(parentViewController 切换的方法也由ViewController类直接提供: UIViewController* vc3 = [[UIViewController alloc] init];vc2 = vc3.parentViewController
1、parentViewController UIViewController里面封装了一个数组,可以存放其子ViewController,系统中使用的例子就是导航和tabBar这类的控制器 ,我们使用如下方法可以直接访问这些父的controller: @property(nullable,nonatomic,weak,readonly) UIViewController *parentViewController
vc.parentViewController) { /* 进一步过滤掉有父控制器的控制器. */ NSLog(@"有内存泄露风险的控制器: %@", obj); } }];
hidesBottomBarWhenPushed: 入栈时隐藏底部栏 • toolbarItems: 工具栏子项集 • tabBarItem: 标签栏子项 • editButtonItem:返回一个编辑按钮 • parentViewController
ChildViewController 可以通过 self.parent(Swift)|| self.parentViewController(OC)来拿到主ViewController的实例。
- (NSString *)aParam { if (self.parentViewController.class == [CLNewViewController class]) {