【问题标题】:Find which viewController is parent查找哪个 viewController 是父级
【发布时间】:2011-05-30 13:05:20
【问题描述】:

我有三个视图控制器,它们相互推到导航控制器上。

ViewController1 可能会推送 VC2 或 VC3 VC2 可能会推送 VC3

也就是说,VC3 要么被 VC1 打开,要么被 VC2 打开。 VC1 是 UITableViewController 的子类,VC2 是 UIViewController 的子类。

现在,在 VC3 中,我想知道是 VC1 还是 VC2 创建了 VC3。我该怎么做?

【问题讨论】:

    标签: objective-c ios


    【解决方案1】:

    你可以检查一下;

    [vc3 parentViewController];
    

    返回一个UIViewController
    根据你的需要,你可以做

    if ([[vc3 parentViewController] isKindOfClass:[VC1 class]]) {
       //has been pushed by VC1
    }
    else if ([[vc3 parentViewController] isKindOfClass:[VC2 class]]) {
       //has been pushed by VC2
    }
    

    【讨论】:

    • 好吧,我在 VC3 中进行检查,所以我想我会写:[self parentViewController],对吗?虽然这个类不是 UIViewController,但它是 UINavigationController。至少这就是返回的内容:[[self parentViewController] class]
    • 是的,您可以致电[self parentViewController]。这有点棘手,但您应该访问 UINavigationController 中的 UIViewControllers 数组。这是一个解决方案:NSArray *array = [[self navigationController] viewControllers]; NSLog(@"parentViewController:%@",[[array objectAtIndex:([array count] -2)] class]);
    • @Saphrosit 谢谢你的阵列解决方案老兄。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多