关闭UINavigationController堆栈的UIPageViewController的父级客户视图控制器为什么不能弹出?

时间:2015-04-21 14:13:03

标签: ios objective-c uinavigationcontroller uipageviewcontroller

简短版本的问题:当我从导航堆栈中弹出UIViewController的父级自定义UIPageViewController时,应用程序崩溃了 - 为什么以及解决方法是什么?下面有更长的描述:

我有一个登录屏幕,然后推送客户UIViewController,客户UIPageViewController本身就是UIPageView的父级,在父级控制器的一部分中显示UIViewController。的观点。让我们调用这个自定义UIPageViewController B,就像我说的那样,它是@interface bjViewController : UIPageViewController <UIPageViewControllerDelegate, UIPageViewControllerDataSource> @property (strong, nonatomic) UIPageViewController *pageController; @property (assign, nonatomic) NSInteger index; @property (strong, nonatomic) UILabel *screenNumber; @property UIPageControl *childPageControl; @end 的父级。以下是视图控制器B的.h文件中声明的父视图控制器属性:

UIViewController *initialViewController = [self viewControllerAtIndex:0];
NSArray *viewControllers = [NSArray arrayWithObject:initialViewController];
[self.pageController setViewControllers:viewControllers direction:UIPageViewControllerNavigationDirectionForward animated:NO completion:nil];

[self addChildViewController:self.pageController];
[[self view] addSubview:[self.pageController view]];

以下是视图控制器B的viewDidLoad中的麻烦代码:

UINavigationController

如果我对此进行评论,我可以将此视图控制器从UIViewController堆栈中弹出而不会出现问题返回NSException A,但是如果这些行已经进入,则当我导航回到视图时应用程序崩溃控制器A.但是如果我在弹出其他东西而不是B之后导航回A,那么没有问题,所以我很确定崩溃与我上面粘贴的这些线有关。 / p>

崩溃发生的情况是应用程序确实从A重新呈现视图,但后来发出2015-04-21 10:08:14.958 [953:110883] -[UIView invalidatePageViewController]: unrecognized selector sent to instance 0x1655e940 2015-04-21 10:08:49.375 [953:110883] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[UIView invalidatePageViewController]: unrecognized selector sent to instance 0x1655e940' *** First throw call stack: (0x26a0845f 0x3489ec8b 0x26a0d879 0x26a0b797 0x2693d008 0x2a4a08fb 0x2690effd 0x2692614d 0x348b8d5f 0x2a091e9d 0x2a4a0981 0x53e95 0x3489dda1 0x348a75f7 0x348a761b 0x2a225435 0x2a0921e9 0x2a4a0981 0x2a181cd7 0x34e45ae1 0x29f58e75 0x348b8d5f 0x2690effd 0x26928df3 0x348b8d5f 0x348b91a9 0x2691a139 0x269ccd1f 0x2691a3b1 0x2691a1c3 0x2df47201 0x29f8443d 0x7379d 0x34e2aaaf) libc++abi.dylib: termina 错误而没有指出它崩溃的位置(并且我的所有函数中都有NSLog) view controller - 这些函数都没有被执行。)

这是我得到的错误。是的我确实有一个断点用于所有异常,但它只是转储到.m文件中的@implementation行为B,即使它已经呈现A.以下是它给出的错误:

NSException

有没有人碰到这样的事情?你能告诉我我做错了什么吗?我理解NSInvalidArgumentException和{{1}}的基础知识,但我甚至不知道被调用/错误调用的内容。

0 个答案:

没有答案