【问题标题】:add view to the parent view from a subview从子视图将视图添加到父视图
【发布时间】:2012-04-18 11:52:08
【问题描述】:

我有我的根视图控制器。在那我加载视图A。 视图 A 包含一个加载视图 B 的按钮。但是,我不想将视图 B 添加为视图 A 的子视图。如果我这样做会发生这种情况:

- (IBAction)loadViewB:(id)sender {

    if (self.viewB == nil) {
        self.viewB = [[NUMViewController alloc] initWithNibName:@"NUMviewController" bundle:Nil];
    } 

    [self.view addSubview:viewB.view];

}

我想加载 viewB 作为我的根视图的子视图。所以我可以在 viewB 中制作动画之前为 viewA 制作动画。

但我不确定我必须如何处理这个问题。我猜我的 rootViewController 中需要一个方法来处理子视图的添加和删除。我需要能够从我的 viewA 子视图中调用该方法。

有什么想法吗?谢谢!

【问题讨论】:

    标签: objective-c ios uiview


    【解决方案1】:

    试试[self.view.superview addSubview:viewB.view]
    但我认为这不是 MVC 的最佳方法。
    您可以做的是将 viewA 添加到 self.view 并将 viewB 添加到 self.view 。

    【讨论】:

    • 感谢这项工作。但我不确定我是否理解将 viewA 和 B 添加到 self.view。然后我如何为一个进出动画? self.view 是我的 rootviewcontroller 的视图,还是我们在谈论我将 viewA 和 B 分配到的容器视图?
    • 是的,我就是这个意思。这是场景。你有一个根视图控制器,它有一个主视图(self.view)。将两个 UIView 属性添加到根视图控制器(viewA 和 viewB),初始化它们并将它们作为子视图添加到 self.view(根视图控制器的主视图)。然后你可以使用这些属性来控制它们,动画它们以及任何你喜欢的东西。不要忘记在 dealloc 方法中释放它们(如果不使用 ARC)。 (实际上你的属性可以是 UIViewControllers,你可以初始化它们并将它们的视图添加到你的 self.view)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-05
    • 1970-01-01
    相关资源
    最近更新 更多