使EultivaluedSection添加功能在Eureka中工作需要什么样的特殊设置?
我已将Example项目中的代码复制到我的代码中,而不是添加行,我得到一个例外。有趣的是,在示例项目中,一切似乎都运行正常,这让我觉得我需要某种额外的设置,可能吗?
例外:
' NSRangeException',原因:' - [UITableView _contentOffsetForScrollingToRowAtIndexPath:atScrollPosition:usingPresentationValues:]:row(1)超出第(1)节的边界(1)。
uncaught exception 'NSRangeException', reason: '-[UITableView _contentOffsetForScrollingToRowAtIndexPath:atScrollPosition:usingPresentationValues:]: row (1) beyond bounds (1) for section (1).'
*** First throw call stack:
(
0 CoreFoundation 0x000000010c9ab1cb __exceptionPreprocess + 171
1 libobjc.A.dylib 0x000000010c30df41 objc_exception_throw + 48
2 CoreFoundation 0x000000010ca1fb95 +[NSException raise:format:] + 197
3 UIKit 0x0000000109bc8d76 -[UITableView _contentOffsetForScrollingToRowAtIndexPath:atScrollPosition:usingPresentationValues:] + 1861
4 UIKit 0x0000000109bc9b8f -[UITableView _scrollToRowAtIndexPath:atScrollPosition:animated:usingPresentationValues:] + 146
5 UIKit 0x0000000109bc9a11 -[UITableView scrollToRowAtIndexPath:atScrollPosition:animated:] + 123
6 Eureka 0x0000000107b7558c _T06Eureka18FormViewControllerC05tableC0ySo07UITableC0C_SC0fC16CellEditingStyleO6commit10Foundation9IndexPathV8forRowAttF + 2780
7 Eureka 0x0000000107b75ba7 _T06Eureka18FormViewControllerC05tableC0ySo07UITableC0C_SC0fC16CellEditingStyleO6commit10Foundation9IndexPathV8forRowAttFTo + 119
8 UIKit 0x0000000109bee33e -[UITableView _didInsertRowForTableCell:] + 122
9 UIKit 0x0000000109ec6bee -[UITableViewCell editControlWasClicked:] + 180
10 UIKit 0x0000000109a949bd -[UIApplication sendAction:to:from:forEvent:] + 83
11 UIKit 0x0000000109c0b183 -[UIControl sendAction:to:forEvent:] + 67
12 UIKit 0x0000000109c0b4a0 -[UIControl _sendActionsForEvents:withEvent:] + 450
13 UIKit 0x0000000109c0b614 -[UIControl _sendActionsForEvents:withEvent:] + 822
14 UIKit 0x0000000109c0a3cd -[UIControl touchesEnded:withEvent:] + 618
15 UIKit 0x000000010a071a88 _UIGestureEnvironmentSortAndSendDelayedTouches + 5560
16 UIKit 0x000000010a06b93e _UIGestureEnvironmentUpdate + 1483
17 UIKit 0x000000010a06b327 -[UIGestureEnvironment _deliverEvent:toGestureRecognizers:usingBlock:] + 484
18 UIKit 0x000000010a06a3d3 -[UIGestureEnvironment _updateGesturesForEvent:window:] + 288
19 UIKit 0x0000000109b0a45c -[UIWindow sendEvent:] + 4102
20 UIKit 0x0000000109aaf802 -[UIApplication sendEvent:] + 352
21 UIKit 0x000000010a3e1a50 __dispatchPreprocessedEventFromEventQueue + 2809
22 UIKit 0x000000010a3e45b7 __handleEventQueueInternal + 5957
23 CoreFoundation 0x000000010c94e2b1 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 17
24 CoreFoundation 0x000000010c9edd31 __CFRunLoopDoSource0 + 81
25 CoreFoundation 0x000000010c932c19 __CFRunLoopDoSources0 + 185
26 CoreFoundation 0x000000010c9321ff __CFRunLoopRun + 1279
27 CoreFoundation 0x000000010c931a89 CFRunLoopRunSpecific + 409
28 GraphicsServices 0x0000000110c5a9c6 GSEventRunModal + 62
29 UIKit 0x0000000109a92d30 UIApplicationMain + 159
答案 0 :(得分:1)
解决。
我的自定义ViewController覆盖了override func viewWillAppear(_ animated: Bool)
,但我忘了拨打super.viewWillAppear()
。
事实证明,这对于尤里卡正常运作至关重要
答案 1 :(得分:0)
与OP有关,我也有同样的错误。就我而言,这是由于我将FormViewController()错误地嵌入另一个视图控制器内引起的。
我的解决方案是将其添加为childViewController(see Eureka Issue 1045)。简而言之,childViewControllers 从父VC( viewWillAppear 等)What does addChildViewController actually do?接收外观和旋转事件。
我的工作示例代码(swift 4.2):
class MyViewController: UIViewController {
var tempForm:FormViewController!
override func viewDidLoad() {
super.viewDidLoad()
tempTemp = FormViewController()
self.addChild(tempForm)
self.setupTempFormSections()
}
private func setupTempFormSections(){
tempForm.form +++ Section(...)
}
...
}