Objective c 如何在不使用xib文件的情况下创建具有控件的可重用子视图

Objective c 如何在不使用xib文件的情况下创建具有控件的可重用子视图,objective-c,uiview,Objective C,Uiview,我正在编写一个应用程序,并且有几个可重用的视图(例如,包含一个文本字段、一个标签和一个按钮) 现在我只想在一个“globalviews.m”文件中创建一次,并将其作为子视图添加到mainview中。(我真的不喜欢界面生成器) 我可以轻松创建一个返回UIView的函数,其中包含组件,但我当然希望访问控件 我希望像这样(在使用的viewcontroller中使“searchview”成为全局视图) 但我怎样才能使内部控件易于访问呢。比如: NSString *something = searchvi

我正在编写一个应用程序,并且有几个可重用的视图(例如,包含一个文本字段、一个标签和一个按钮) 现在我只想在一个“globalviews.m”文件中创建一次,并将其作为子视图添加到mainview中。(我真的不喜欢界面生成器)

我可以轻松创建一个返回UIView的函数,其中包含组件,但我当然希望访问控件

我希望像这样(在使用的viewcontroller中使“searchview”成为全局视图)

但我怎样才能使内部控件易于访问呢。比如:

NSString *something = searchview.textviewname.text ;
或者这是一个可怕的想法开始?
这正是我喜欢的编码方式…

您可以创建一个自定义类,它是
UIView
的子类。然后可以为每个控件添加属性(与添加
NSString
NSNumber
等的方法相同)。或者您可以创建公共方法来修改/获取数据

e、 g

我个人的观点(从很多经验来看)是学习界面生成器并处理它。做你想做的事是完全可能的,很多人都同意你,并选择这样做。就我个人而言,我从未见过它做得“对”。这意味着所有这些都是为了创建自己的模式和方法而定制的,避免了在interface builder提供的模式中积累多年的经验和测试

我发现故事板特别强制使用非常特定的编码模式和风格。我认为移开表单是一个巨大的错误,因为如果正确使用它,它有很大的潜力抽象出UI/代码,防止使用稍后返回的快捷方式,最重要的是当其他人需要更改它时,没有歧义,您不能在类名或变量名等方面犯错误

我经常使用故事板,但还没有遇到问题。另一方面,我与坚持手工操作的开发人员一起工作,从来没有遇到过这么多问题,并且对以这种方式开发应用程序所需的时间感到震惊

最后由你决定

注意


您提到想要创建一个视图并重用它。也可以在.xib文件中执行此操作并以这种方式重用它。失去一些情节提要能力,但可能会给你一点两全其美的感觉。

不要忘了标记出解决问题的最佳答案和最佳答案。如果没有答案,请留下评论或编辑您的问题以提供更多细节。面对同样问题的人会想知道是什么解决了你的问题。让这个问题像这样悬而未决对任何人都没有帮助,我决定改为使用xib文件。这似乎是最简单的方法,也是我“应该”的方法。对我来说,故事板是非常新的,所以我实际上根本不使用它。但是谢谢你的意见。
NSString *something = searchview.textviewname.text ;
- (void)setTextFiledColour:(UIColor *)color;
- (NSString *)getTextFieldText;