4 回答
TA贡献1779条经验 获得超6个赞
MVC中的M用于“模型”,而在MVC范例中,模型类的作用是管理程序的数据。模型与视图相反 - 视图知道如何显示数据,但它不知道如何处理数据,而模型知道如何处理数据的所有内容,但不了解如何显示数据。模型可能很复杂,但它们不一定是 - 您的应用程序的模型可能像字符串或字典数组一样简单。
控制器的作用是在视图和模型之间进行调解。因此,它们需要引用一个或多个视图对象和一个或多个模型对象。假设您的模型是一个字典数组,每个字典代表表中的一行。应用程序的根视图显示该表,它可能负责从文件加载数组。当用户决定向表中添加新行时,他们会点击一些按钮,您的控制器会创建一个新的(可变的)字典并将其添加到数组中。为了填充行,控制器创建一个详细视图控制器并为其提供新的字典。详细视图控制器填写字典并返回。字典已经是模型的一部分,因此没有其他任何事情需要发生。
TA贡献1946条经验 获得超3个赞
有多种方法可以将数据接收到iOS中的不同类。例如 -
分配另一个类后直接初始化。
委派 - 用于传回数据
通知 - 用于一次向多个类广播数据
保存
NSUserDefaults
- 以便稍后访问单身人士课程
数据库和其他存储机制,如plist等。
但是对于将值传递给在当前类中完成分配的其他类的简单方案,最常见和首选的方法是在分配后直接设置值。这样做如下: -
我们可以使用两个控制器来理解它 - Controller1和Controller2
假设在Controller1类中,您要创建Controller2对象并使用传递的String值推送它。这可以这样做: -
- (void)pushToController2 { Controller2 *obj = [[Controller2 alloc] initWithNib:@"Controller2" bundle:nil]; [obj passValue:@"String"]; [self pushViewController:obj animated:YES];}
在Controller2类的实现中,将有以下功能 -
@interface Controller2 : NSObject@property (nonatomic , strong) NSString* stringPassed;@end@implementation Controller2 @synthesize stringPassed = _stringPassed;- (void) passValue:(NSString *)value { _stringPassed = value; //or self.stringPassed = value}@end
您也可以使用与此类似的方式直接设置Controller2类的属性:
- (void)pushToController2 { Controller2 *obj = [[Controller2 alloc] initWithNib:@"Controller2" bundle:nil]; [obj setStringPassed:@"String"]; [self pushViewController:obj animated:YES];}
要传递多个值,您可以使用多个参数,例如: -
Controller2 *obj = [[Controller2 alloc] initWithNib:@"Controller2" bundle:nil];[obj passValue:@“String1” andValues:objArray withDate:date];
或者,如果需要传递超过3个与常用功能相关的参数,则可以将值存储到Model类中,并将该modelObject传递给下一个类
ModelClass *modelObject = [[ModelClass alloc] init]; modelObject.property1 = _property1;modelObject.property2 = _property2; modelObject.property3 = _property3;Controller2 *obj = [[Controller2 alloc] initWithNib:@"Controller2" bundle:nil];[obj passmodel: modelObject];
所以,如果你想 -
1) set the private variables of the second class initialise the values by calling a custom function and passing the values.2) setProperties do it by directlyInitialising it using the setter method.3) pass more that 3-4 values related to each other in some manner , then create a model class and set values to its object and pass the object using any of the above process.
希望这可以帮助
- 4 回答
- 0 关注
- 893 浏览
添加回答
举报