使用 xib 和 viewController

Posted

技术标签:

【中文标题】使用 xib 和 viewController【英文标题】:Working with xib and viewController 【发布时间】:2016-04-21 10:31:21 【问题描述】:

我在 .xib 文件中有一个按钮。

我希望如果我单击该按钮,应该更改 viewController 的 .xib 文件颜色。

我该怎么做?

我应该使用 NSNotification 还是有其他方法可以做到这一点?

【问题讨论】:

使用 loadnibname 加载 xib 并将视图作为子视图添加到视图控制器并设置按钮的目标操作:) 在视图控制器中编写方法最后使用 [self.查看 setBackgroundColor:"your color"] 就是这样:) 按钮的目标操作将在 .xib 的 swift 文件中。而不是在其视图控制器中。我说的对吗? 我可以知道你为什么在单独的xib中有一个按钮吗?你为什么不把它放在你的viewController的xib本身???代码会更容易处理不是吗:) 实际上我的 .xib 中有颜色颗粒。在我的 viewController 中,我必须加载这么多不同的视图。这就是为什么我想使用 .xib 【参考方案1】:

UIViewController 没有颜色。您可能在谈论它的根视图,如果它嵌入在 UINavigationController 中,可能是来自 UINavigationBartintColor

无论如何,连接到您的UIButtonIBAction 将满足您的需求。

【讨论】:

你总是可以设置 self.view.backgroundColor :) 并且 viewcontroller 的颜色会改变 :P 每个 viewcontroller 里面都有一个视图不是吗 :P @SandeepBhandari 这是错误且具有误导性的。 UIViewController 没有改变任何颜色,改变的是它的根UIView,请不要传播错误信息。 我相信我说过同样的话:P self.view.backgroundColor 意味着您正在更改 UIViewController 的根视图 :) 没有任何误导 :) 引用你viewcontroller's color will be changed这是错误的。所以不,你没有说同样的话。【参考方案2】:

将 xib 上的 UIButton 与继承自 UIViewController 的类中的 IBAction 连接起来,并更改 UIViewControllerview 属性。你可以使用self.view.backgroundColor

这里是简单的代码 sn-p 来做到这一点。希望对您有所帮助。

@IBAction func myButtonPressed(sender: AnyObject) 
    self.view.backgroundColor = UIColor.redColor() //Or any color of your choice 

【讨论】:

我可以将 .xib 的按钮连接到它的 viewController 类吗? @khunshan 是的。如果您在 xib -> Identity Inspector(在右侧面板上)-> Class 中设置了 UIViewController 继承类的名称。您需要在代码中创建一个 IBAction 并将其与 xib 文件中的 UIButton 连接。

以上是关于使用 xib 和 viewController的主要内容,如果未能解决你的问题,请参考以下文章

我可以将非 xib 应用程序转换为使用 xibs 吗?

使用 xib 和 viewController

使用 XIB 和自动布局操作视图层次结构

使用 xib 和 tableView 的多个视图

使用 xib 和通过代码添加的区别 - iPhone

iOS开发中xib和Storyboard中需要注意的事项