制作一个 UIVIew,它出现在 xcode 项目中的所有 .NIb 文件上

Posted

技术标签:

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

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

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

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

【问题讨论】:

有 UITabBarController ,您可以在其中为各个视图控制器提供选项卡,或者您可以创建可以在所有五个控制器中调用的自定义视图。 您可能已经看过这个,但它帮助我解决了一个类似的问题:***.com/a/17759156/2410991 【参考方案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];
        
    

【讨论】:

安静好,但是我将如何访问不同控制器中按钮的动作事件?,在所有控制器中,我所有的动作事件都将相同。 查看我的编辑!如果您想为这些按钮设置不同的目标和操作,则必须对所有控制器执行此操作

以上是关于制作一个 UIVIew,它出现在 xcode 项目中的所有 .NIb 文件上的主要内容,如果未能解决你的问题,请参考以下文章

xCode UIView 与 UITableView [关闭]

UIView 动画 swift 4 Xcode9 的问题

XCODE:UIView 背景没有出现在屏幕上,即使我在情节提要中设置了颜色并以编程方式

为啥这个 UIView 没有出现在 UITableView 前面?

使用 CALayer 的 UIView 没有出现阴影

在 Xcode 中重新制作故事板