视图中的内容和视图控制器中的内容是啥?
Posted
技术标签:
【中文标题】视图中的内容和视图控制器中的内容是啥?【英文标题】:What goes in the View and what goes in the View Controller?视图中的内容和视图控制器中的内容是什么? 【发布时间】:2011-02-26 17:16:08 【问题描述】:我是 iPhone 编程新手,这将是我在这里的第一个问题。我有使用不同语言的经验,例如 php/java/c++。
我的问题是关于 ios 中的 ViewControllers 和视图。
我已经开始了一个项目,其中将包含几个不同的内容,例如登录屏幕、主屏幕和其他几个屏幕。该项目的目标是学习如何以编程方式创建所有内容,而不是使用界面构建器来更习惯于系统。我正在使用这本书:“高级 iOS 4 编程”来帮助我。
我已经能够创建所有屏幕(并且登录之类的东西可以正常工作),但我不确定我是否正确。
我用于创建文本字段/标签/按钮的所有代码现在都位于 ViewController 中,而放置所有内容的主视图几乎是空的,其中没有任何操作。创建文本字段和其他组件的代码不应该位于视图本身中,还是这是正确的方法?
我看过几个不同的例子,但大多数都使用界面构建器。书本身在这件事上也不是很清楚。
提前致谢。
亲切的问候, 碧玉
【问题讨论】:
“这个项目的目标是学习如何以编程方式创建所有内容,而不是使用界面生成器来更习惯于系统。”如果你想学习这个系统,你应该学习如何使用 Interface Builder。太多第一次使用 iPhone 的开发者害怕 IB,其实他们应该拥抱它。 @Joe 我认为您根本不需要在目标 c 中使用 IB(在构建 iphone 应用程序时),或者您应该首先成为 IB 大师才能掌握该语言。根据您的要求选择使用其中一个是一个问题。事实上,来自不同平台的程序员都擅长处理代码中的视图。 IB有它自己好的一面,他只是还不知道,但至少他正在努力学习一些东西,你不认为我们应该鼓励他。 @Joe 如果你看看 brad larson 的应用程序分子,他根本没有使用 IB。它是一个小屏幕,你不能做太多事情。只是一些基本的东西。 大家好!我尝试从界面生成器开始,但我不知道我在做什么将所有对象连接在一起。这也是因为我不了解视图和视图控制器的基本概念。编写代码有助于我了解底层系统,因此我可以(将来)使用界面生成器,因为这样我会更清楚我在做什么。 【参考方案1】:在视图中,您拥有视图 - 换句话说,就是人类用户用他们的眼球看到的内容。
因此,例如,如果您要进行复杂的绘图,您将拥有自己的自定义 drawRect: 方法,例如在视图中。
另一方面......
在视图控制器中,您拥有控制视图的东西。
一般来说,“一切”都在视图控制器中。
当您第一次开始为 iPhone(或 Mac)编程时,只需将所有内容都放在视图控制器中,不要太担心。有很多东西要学。好吗?
最终,将“实际绘图”单独分离到视图中。
希望这个对初学者的简单解释有所帮助!
【讨论】:
您好乔,感谢您的回复。你所说的“实际绘图”是什么意思? (这是否也意味着在屏幕上绘制文本框和其他东西,或者你的意思是用石英绘制)? 谢谢乔,这让事情变得清晰。因为我认为自定义 UIView 文件是 xib 文件的替代品,所以我的印象是所有组件都需要放在 UIView 文件中。【参考方案2】:在简单的控制器代码中应该包含类似...的方法
class myLoginController : NSObject
UIView *myView;
-(void) initLoginController
-(void) loadLoginViewInView :(UIView*)inView;
-(void) removeLoginView;
-(void) isViewLoaded;
-(void) submitButtonClicked : (id) button;
-(BOOL) isLoginSuccess;
和 initLoginController 你可以创建你的视图,
-(void) loadLoginViewInView :(UIView*)inView
[inView addSubview:myView];
在 removeLoginView 中,您可以从其 superView 中删除“myView”。
【讨论】:
以上是关于视图中的内容和视图控制器中的内容是啥?的主要内容,如果未能解决你的问题,请参考以下文章