【问题标题】:Make a UIVIew which appears on all .NIb files in xcode project制作一个 UIVIew,它出现在 xcode 项目中的所有 .NIb 文件上
【发布时间】:2014-06-02 08:32:49
【问题描述】:

我有一个 UIVIEW 我想让它出现在所有控制器上,比如我有 5 个控制器, 1 , 2 ,3 ,4 , 5

我在底部的控制器 1 上有一个 UIVIEW,其中包含 5 个按钮不想制作导航栏,因为我无法在导航栏上添加自定义按钮。

或者有什么技术可以用来制作自定义导航栏?出现在底部,我已经在顶部有一个 UINavigationbar

【问题讨论】:

  • 有 UITabBarController ,您可以在其中为各个视图控制器提供选项卡,或者您可以创建可以在所有五个控制器中调用的自定义视图。
  • 您可能已经看过这个,但它帮助我解决了一个类似的问题:stackoverflow.com/a/17759156/2410991

标签: ios uiview


【解决方案1】:

您可以将带有 5 个按钮的 UIView 放在一个单独的 nib 中(在我的示例中我称之为 BottomNavigation),然后将其添加到每个控制器视图中,如下所示:

UIView* containerView = [UIView alloc] initWithFrame:CGMakeRect(0, 440, 320, 40)]; //Adjust rect to your needs
[[NSBundle mainBundle] loadNibNamed:@"BottomNavigation" owner:containerView options:nil];
[self.view addSubView:containerView];

如果你想为 containerView 中的按钮设置目标动作,你可以像这样遍历它们(在你将它们作为子视图添加到你的 self.view 之前):

for (UIView *view in containerView.subviews)
    {
        if ([view isMemberOfClass:[UIButton class]])
        {
            //Here you should check the tag or equivalent to make sure your setting the target-action for the right UIButton
            [view addTarget:target action:@selector(MyMethod) forControlEvents:UIControlEventTouchUpInside];
        }
    }

【讨论】:

  • 安静好,但是我将如何访问不同控制器中按钮的动作事件?,在所有控制器中,我所有的动作事件都将相同。
  • 查看我的编辑!如果您想为这些按钮设置不同的目标和操作,则必须对所有控制器执行此操作
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-04-28
  • 1970-01-01
  • 1970-01-01
  • 2012-10-09
  • 2011-07-28
相关资源
最近更新 更多