【问题标题】:Help Creating multiple views with view controllers帮助使用视图控制器创建多个视图
【发布时间】:2010-06-25 19:40:59
【问题描述】:

好的,这就是我想要做的。在我的根视图控制器中,我有主视图,然后在该视图中,我有三个额外的视图。 (注意这是针对 ipad 的)。

这就是我想要做的。当根视图加载时,我希望它也加载其他三个视图,并且都有自己的视图控制器。

这是我迄今为止所尝试的。

在我的根控制器 xib 中,我放入了三个视图控制器并删除了它们的视图。然后我将我在根控制器视图中布置的视图插入每个控制器视图插槽。我还用我在 rootcontroller.h 中设置的那些插入了视图控制器参考

在 viewdidload 下的 rootcontroller.m 中,我尝试设置例如。

theViewController = [[ViewController 分配] initWithNibName:@"AView" bundle:[NSBundle mainBundle]];

但没有用,没有用

【问题讨论】:

    标签: iphone ipad uiviewcontroller


    【解决方案1】:

    ViewControllers 被设计为使用整个屏幕,所以这种情况不应该发生。但是,您需要在视图中进行一些复杂的用户交互(特别是在 iPad 中)以考虑使用视图控制器和一些封装此逻辑的子视图控制器,这一点很常见。

    我建议你通过代码来实现它。你可以使用类似的东西:

    -(void) viewDidLoad {

    //创建视图控制器 viewController1_ = [[ViewController alloc] initWithNibName:@"View1" andBundle:nil]; viewController2_ = [[ViewController alloc] initWithNibName:@"View1" andBundle:nil]; viewController3_ = [[ViewController alloc] initWithNibName:@"View1" andBundle:nil];

    //将视图添加到主视图 [self.view addSubview:viewController_1.view]; [self.view addSubview:viewController_2.view]; [self.view addSubview:viewController_3.view];

    //TODO: 也许设置适当的框架?

    }

    小心绕过事件。当您将辅助视图控制器嵌入到主视图控制器中时,任何标准事件都不会传递给您的子控制器(例如:viewWillAppear、shouldAutorotate、...不会被您的子控制器接收)。如果您在子视图控制器中需要它们,请记住明确绕过它们。

    如果您的视图没有使用 IB 正确创建,请检查您是否遇到这些事件绕过问题。

    希望有帮助!

    【讨论】:

    • 感谢您的意见。因此,与其在 xib 中建立这些视图控制器,不如通过代码来完成。如果我调整框架,它们应该看起来正确。好的,我可以试一试,因为到目前为止,我的工作是将表格视图放在主视图内的视图中。然后通过模式视图调用该控制器,使用当前上下文的样式。它有效,但我觉得它是一个黑客,并且正在做一些它不打算做的事情。我确实需要传递子视图的所有方法以及表功能吗?我该怎么做呢?
    猜你喜欢
    • 2011-09-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-14
    相关资源
    最近更新 更多