我正在处理使用UISlideViewController
的项目。我知道这可能是一个重复的问题,但关于这个主题之前的帖子没有帮助我。我有一个特定的问题,因为我设法理解。我的应用程序崩溃了。我之前已经阅读过,将所有使用UI的工作放在主线程中非常重要。这是代码:
pageViewController.setViewControllers([viewController],
direction: direction,
animated: animated,
completion: { completed in
dispatch_async(dispatch_get_main_queue()) {
...
我得到的错误是:
*** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Duplicate states in queue'
*** First throw call stack:
(0x183fd1900 0x18363ff80 0x183fd17d0 0x18494499c 0x1894dc9f4 0x1894dcdec...)
进一步测试我也在同一行代码上得到了这个错误:
*** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'No view controller managing visible view <UITableView: 0x12744aa00;
frame = (0 0; 375 515);
clipsToBounds = YES; autoresize = W+H;
gestureRecognizers = <NSArray: 0x12836cf60>;
layer = <CALayer: 0x1286226b0>;
contentOffset: {0, 0}; contentSize: {375, 291}>'
这个错误非常难以重现。一个字面上需要在UIPageViewController上多次触摸和滚动才能导致此崩溃 感谢您的时间和帮助。
答案 0 :(得分:0)
您应将setViewControllers:direction:animated:completion:
代码放在dispatch_async block
内。它为我工作。
https://stackoverflow.com/a/24749239