视图中的内容以及View Controller中的内容是什么?

时间:2011-02-26 17:16:09

标签: iphone view viewcontroller

我是iPhone的新手,这将是我的第一个问题。我有使用php / java / c ++等不同语言的经验。

我的问题是关于iOS中的ViewControllers和视图。

我已经启动了一个项目,其中包含几个不同的内容,如登录屏幕,主屏幕和其他几个屏幕。该项目的目标是学习如何以编程方式创建所有内容,而不是使用界面构建器来更加习惯于系统。我正在使用这本书:“高级iOS 4编程”来帮助我。

我已经能够创建所有屏幕(以及登录等工作正常),但我不确定我是否正确操作。

我创建textfields / labels / buttons的所有代码现在都位于ViewController中,而放置所有内容的主视图几乎是空的,其中没有任何内容。创建文本字段和其他组件的代码不应该位于视图本身中,或者这是正确的方法吗?

我查看了几个不同的示例,但大多数使用了界面构建器。这本书在这件事上也不是很清楚。

提前致谢。

亲切的问候, 碧玉

2 个答案:

答案 0 :(得分:3)

视图中,您有视图 - 换句话说,就是人类用户用眼球看到的内容。

因此,例如,如果您正在进行复杂的绘制,那么您将拥有自己的自定义drawRect:方法,例如就在视图中。

另一方面......

视图控制器中,您可以控制视图

一般来说,“一切”都在视图控制器中。

当您第一次开始为iPhone(或Mac)编程时,只需将所有内容放在视图控制器中,不要太担心。有很多东西需要学习。 OK?

最后,将“实际绘图”单独分开到视图中。

希望这个初学者的简单解释有帮助!

答案 1 :(得分:1)

在简单的控制器代码中应该包含像......

这样的方法
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”。