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 關注
- 921 瀏覽
添加回答
舉報