制作一个 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 [关闭]
XCODE:UIView 背景没有出现在屏幕上,即使我在情节提要中设置了颜色并以编程方式