在iOS中,ViewControllers花了很多时间。 视图控制器的原因主要有两点非常重要:
- 他们引用查看屏幕上的对象(即self.loginButton指的是一个UIButton的视图控制器访问)
- 他们知道的数据模型。 (即涉及与屏幕相关的数据)
Theres两种不同类型的数据传递。 Theres将数据对象从UIViewController传递给一个不同的UIViewController [在这里精美地解释:Passing Data Objects]。然后是UIViewController使用数据对象在屏幕上显示信息的方法。
所以为了在屏幕上有一个UIViewController效果的东西,你需要:
- 有一个数据对象(数组,自定义对象,任何事情真的)
- 有一个视图的引用(UILabel,UIButton等)
例如,下面是如何生成和使用临时数据在屏幕上显示信息。假设有一个用户对象和一个UserNameLabel;
- (id)init {
if (self = [super init]) {
self.user = [User newUserWithTempData];
}
return self;
}
然后在viewDidLoad方法:
- (void)viewDidLoad
{
[super viewDidLoad];
self.userNameLabel.text = self.user.nameString;
}
此处理使用数据以影响在屏幕上的意见。如果你问如何在不同的视图控制器之间共享用户对象,那么这是一个不同的问题,如果你愿意,我可以解释。
编辑:我假设你的问题是问如何从故事板获得一个视图的参考。
我将解释一步这一形象一步一切,因为它有望引导您的步骤把它放在一起。我会根据编号的箭头指向什么来分解它。在这里,我们去:
箭1
箭头1指向一个UITableViewCell子类的厦门国际银行的文档大纲。
注: CircleView是的UIView的定制子类。随着下面的实现:
#import "CircleView.h"
@implementation CircleView
- (void)drawRect:(CGRect)rect{
// CUSTOM DRAWING METHOD HERE
}
@end
箭头1指向自定义CircleView在屏幕上查看。为此,我将UIView添加到屏幕上,然后更改类。
箭2
箭头2指向如何在故事板或Interface Builder的视图改变为具有自定义实现自定义视图。在这里,只需选择视图并打开文件检查器就可以了。然后找到此选项卡并将自定义类从UIView更改为MyCustomView。
箭头3
箭头3所指向的属性,涉及到在界面生成器的自定义视图。
下面是它的代码:
#import <UIKit/UIKit.h>
@class CircleView;
@interface CreateNewQuestionCell : UITableViewCell
@property (nonatomic, weak) IBOutlet CircleView *circleView;
@end
在这里你申报财产,使用您创建的自定义类。确保有IBOutlet中,这样的Xcode可以让下一步工作:)
箭头4
箭4指向,告诉你一个指标的属性是否是在视图上从故事板是连接到课堂中的财产。这是你如何确保一切都连接起来。
Theres 2种方式来做到这一点,我会展示快速的方式,但如果你好奇,让我知道,我会添加更多。
- 单击指示器并拖动到您创建并释放的自定义视图。 [BTW,获得2个屏幕打开,打开的助理编辑]
这里是一个快照:
完成
现在,当我运行的应用程序,该视图现在是一个圆形视图,一个在该区域绘制阴影圆的自定义类。
此时,您可以在viewDidLoad函数中更改任何需要的东西。
你是如何从一个视图控制器到下一个?你正在使用故事板和赛格? – nhgrif
“我试图学习的是如何将所有生成的数据从1个UIViewController传递到多个UIViews”是“UIViews”的一个错字,并且您想要“多个UIViewController”,或者它的目的是这样吗? –
@ nhgrif我正在使用故事板,只有1 UIViewController所有UIViews在UIViewController的窗口/屏幕。不,我没有使用segues,我也在UIViewController上获得了huttons/sliderrs/textFields和标签。我不是从视图移动到基本查看,一切都在1视图控制器 – Seeerdar