我正在开发一个需要用户输入数据的ios应用程序。它通过多个视图收集(view1:textboxes,view2:switches,view3:personal data)
我想收集所有这些数据,并通过所有即将推出的视图访问它们。是否可以为三个视图使用1个viewcontroller,或者是否有更方便的方法将所有数据推送到视图中?
答案 0 :(得分:1)
对不起,我没有看到Swift标签,我的不好,我会看看我是否可以翻译成Swift来帮助你,因为这对你来说看起来很陌生。
viewController1 =>存储一些数据
viewController2 =>由自定义init调用,如此
init(dataFromViewController1 : String, textBody1 : String, title1 : String) {
}
迅速,这是接近正确的
- (id)initWithString:(NSString*)dataFromViewController1
textBody1:(NSString*)textBodydataFromViewController1
title1:(NSString*)titledataFromViewController1
textBody2:(NSString*)textBodydataFromViewController2
title2:(NSString*)titledataFromViewController2
viewController3 =>由自定义init调用,如此
init(dataFromViewController1 : String, textBody1 : String, title1 : String, textBody2 : String, title2 : String) {
}
快速,接近右边:
- (id)initWithNibName:(NSString *)nibNameOrNil
bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self)
{
}
return self;
}
- (id)initWithString:(NSString*)dataFromViewController1
textBody1:(NSString*)textBodydataFromViewController1
title1:(NSString*)titledataFromViewController1
{
self = [super init];
if (self) {
}
return self;
}
等等,等等,
在你的viewcontroller .m impelmentaiton文件中:
init(dataFromViewController1 : String, textBody1 : String, title1 : String, textBody2 : String, title2 : String) {
self.dataFromViewController1 = dataFromViewController1
self.textBody1 = textBody1
self.title1 = title1
self.textBody2 = textBody2
self.title2 = title2
}
这是一种先进的转发方法,非常时尚,非常简单,不需要委托。我试图不惜一切代价避免代表团。当你的应用程序超过40K行代码时,你会希望你从未使用过自定义委派方法,而是选择使用自定义正向传输init方法。
使用快速的东西:
var aPrettyCat = aPrettyCat(dataFromViewController1 : "cat", textBody1 : "cheese", title1 : "donuts", textBody2 : "pickles", title2 : "brownies")
设置Swift内容:
home/jale% zgrep -i "Forward Challenge Curly WUT" *filename*