【问题标题】:Changing subview content after view has loaded (cocoa touch)加载视图后更改子视图内容(可可触摸)
【发布时间】:2010-12-13 12:01:04
【问题描述】:

我正在尝试创建自己的标签栏实现,使用工具栏而不是标签栏(以启用新的“标签栏”的自定义)。为了实现这一点,我需要能够在按下按钮时在视图之间切换。

目前,我的视图由一个 tabBar 子视图和一个 customView 子视图组成。后者需要在newTabBarController的按钮回调中进行切换。谁能告诉我我该怎么做?本质上,我希望子视图具有与 presentModalViewController 相同的效果。简单地将我的视图指针设置为不同的视图是行不通的。

下面是一些示例代码:

- (void)viewDidLoad{
  customView = selectedViewController.view;
  [self.view addSubView:customView];
  [self.view addSubView:newTabBarController.view];
}

- (void)buttonHandler:(id)sender {
  NewViewController newController = [[NewViewController alloc] init];
  // what to do now??
}

需要明确:newTabBarController 不继承自 UITabBarController。它是 UIViewController 的子类。

【问题讨论】:

    标签: iphone cocoa-touch sdk


    【解决方案1】:

    如果您打算保留这些视图,我会将它们全部添加到超级视图中,并使用 bringSubviewToFront: 和 sendSubviewToBack: 来管理用户看到的视图。

    //what to do now??
    [self.view addSubView:newController.view];
    [customView sendSubviewToBack];
    

    来自 iPhone 应用程序编程指南:

    要在其父视图中重新排序现有子视图,请调用父视图的bringSubviewToFront:、sendSubviewToBack: 或exchangeSubviewAtIndex:withSubviewAtIndex: 方法。使用这些方法比删除子视图并重新插入它们更快。

    【讨论】:

    • 谢谢,这个解决方案现在就足够了。忍不住觉得这里应该用一个UINavigationController。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-04
    • 2011-05-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多