我正在尝试初始化自定义视图控制器并使用它发送参数,但无法弄明白。
草拟一个想法:
我想为每项运动(步行,跑步......)设置不同的设置,并将这些设置保存在自定义viewcontroller的核心数据中。
要知道设置属于哪种运动,我需要知道用户点击进入该屏幕的运动。我正在考虑通过发送参数,为每项运动使用自定义初始化或获取密钥来做到这一点。所有这些我无法弄清楚。
我调查了this issue并尝试这样做:(第4项) 但这不起作用,根据IASK文档,我认为我还需要指定一个文件,但是什么文件?
选择器必须有两个参数:Settings bundle中的文件名的NSString参数和IASKSpecifier。
我已尝试设置文件字段并尝试了不同的值,但没有成功。
我在这里很丢失,如果有可能获得初始化控制器的项目的密钥(例如,对于项目4“运行”)也是好的。
我已经尝试了很多不同的事情,我正在失去理智,我显然做了一些非常错误的事情,但我不知道它是什么。
答案 0 :(得分:0)
您无需在IASKSpecifier
中指定Settings.plist
密钥。它的工作方式是你实现
SettingsPerSportViewController.m
:
- (id) myinit:(NSString*)file specifier:(IASKSpecifier*)specifier {
if ((self = [super init])) {
// setup your VC
if ([specifier.key isEqualToString:@"tennis"]) {
// custom stuff for tennis
}
}
return self;
}
但是,这意味着您可以自行为您的运动构建设置视图控制器,并且不要使用IASK。
如果所有体育项目共享相同的设置并且您希望使用IASK生成设置视图控制器,则可以实施custom settings storage并对所有体育项目使用相同的Sport.plist
。然后,您的自定义设置存储可以从Core Data加载并直接保存到Core Data。然后,sport
属性将加载路由并将操作保存到正确的Core Data上下文或表。
在根级别,你可以有一个简单的静态视图控制器,为IASKAppSettingsViewController
属性设置为自定义存储子类和settingsStore
,为每项运动设置并推送sport
根据所选运动设置的属性。