我有一个包含两个动态原型单元格的表视图。使用performSegue
显示tableview,它会对新的Navigation控制器进行模式显示。它在IOS 6.0模拟器上运行良好,但在IOS 5.1设备上运行不正常(我使用的是6.0 SDK,但目标是5.1平台)。
我无法让配件视图正常工作 - 两个问题
- (void)tableView:(UITableView *)tableView accessoryButtonTappedForRowWithIndexPath:(NSIndexPath *)indexPath
tableview委托方法,则永远不会调用它。这已被其他地方提出但尚无答案。或者,如果我使用故事板编辑器触发来自公开配件视图的segue,它在模拟器上工作正常,但在我尝试使可重复使用的单元出列时在设备上崩溃。崩溃堆栈转储
2012-10-15 21:09:07.744 mainapp[338:707] CRASH: [<DateCell 0x1e5b30> setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key accessoryActionSegueTemplate.
2012-10-15 21:09:07.771 mainapp[338:707] Stack Trace: (
0 CoreFoundation 0x373cd8a7 __exceptionPreprocess + 186
1 libobjc.A.dylib 0x350d2259 objc_exception_throw + 32
2 CoreFoundation 0x373cd5c5 -[NSException init] + 0
3 Foundation 0x37bcc323 _NSSetUsingKeyValueSetter + 130
4 Foundation 0x37bcbe23 -[NSObject(NSKeyValueCoding) setValue:forKey:] + 23
5 UIKit 0x31263965 -[UIView(CALayerDelegate) setValue:forKey:] + 156
6 Foundation 0x37ba5f09 -[NSObject(NSKeyValueCoding) setValue:forKeyPath:] + 132
7 CoreFoundation 0x3732c7d3 -[NSObject performSelector:] + 38
8 CoreFoundation 0x3732d461 -[NSArray makeObjectsPerformSelector:] + 152
9 UIKit 0x313190c3 -[UINib instantiateWithOwner:options:] + 918
10 UIKit 0x311027bd -[UITableView dequeueReusableCellWithIdentifier:] + 304
11 mainapp 0x0005b769 -[SetupViewController tableView:cellForRowAtIndexPath:] + 80
12 UIKit 0x31101efb -[UITableView(UITableViewInternal) _createPreparedCellForGlobalRow:withIndexPath:] + 546
13 UIKit 0x31100fd9 -[UITableView(_UITableViewPrivate) _updateVisibleCellsNow:] + 1076
14 UIKit 0x31100763 -[UITableView layoutSubviews] + 206
15 UIKit 0x310a4f15 -[UIView(CALayerDelegate) layoutSublayersOfLayer:] + 148
16 CoreFoundation 0x3732c1fb -[NSObject performSelector:withObject:] + 42
17 QuartzCore 0x374f1aa5 -[CALayer layoutSublayers] + 216
18 QuartzCore 0x374f16bd _ZN2CA5Layer16layout_if_neededEPNS_11TransactionE + 216
19 QuartzCore 0x374f5843 _ZN2CA7Context18commit_transactionEPNS_11TransactionE + 226
20 QuartzCore 0x374f557f _ZN2CA11Transaction6commitEv + 314
21 QuartzCore 0x374ed4b9 _ZN2CA11Transaction17observer_callbackEP19__CFRunLoopObservermPv + 56
22 CoreFoundation 0x373a1b1b __CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__ + 18
23 CoreFoundation 0x3739fd57 __CFRunLoopDoObservers + 258
24 CoreFoundation 0x373a00b1 __CFRunLoopRun + 760
25 CoreFoundation 0x373234a5 CFRunLoopRunSpecific + 300
26 CoreFoundation 0x3732336d CFRunLoopRunInMode + 104
27 GraphicsServices 0x33ae2439 GSEventRunModal + 136
28 UIKit 0x310cfcd5 UIApplicationMain + 1080
29 mainapp 0x000566ad main + 96
30 mainapp 0x00056648 start + 4
)
我尝试删除并重新创建故事板中的场景,认为它们可能已经损坏,但没有快乐。我们将非常感激地收到任何建议。
由于
安德鲁
答案 0 :(得分:0)
通常在我收到错误时
this class is not key value coding-compliant for the key
这意味着在故事板中没有连接的东西。
例如,以前使用的属性名称仍然连接到故事板中的元素。
解决这个问题的方法是在故事板中将控件从控制器转移到控制器(缩小以便它不会连接到特定事件)并实现:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
检查选择的单元格并使用
[self performSegueWithIdentifier:@"yourIdentifier"];
希望它有所帮助,祝你好运。