我的应用程序使用ARC,而我遇到了一些不使用它的第三方软件。 我可以通过在构建阶段设置-fno-objc-arc来解决这个问题。但是我遇到了一个问题,即一个ViewController崩溃了pp,因为它被调用了两次。
我会尝试解释......
在我自己的TableView中,我选择了一条引入Urban Airship的StoreFront的线路。 据我所见,它作为Modal窗口出现。 这是一个TableView直接指向我在TableView中选择的项目的DetailView。我买这个项目,它开始下载。 我有一个来自Urban Airship的代表,在我的TableView中告诉我什么时候这个项目安全地在电话上。我[自我解雇ModalViewControllerAnimated:YES];在我自己的TableView中该代表末尾的UAStore并返回我的TableView 一切正常。
选择要购买的新产品时会出现问题。 我会去UA DetailView,但是一旦我点击“购买”按钮,应用就会崩溃。
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Pushing the same view controller instance more than once is not supported (<UAProductDetailViewController: 0x3a35e0>)'
对我而言,看起来UAProductDetailViewController尚未发布。 Urban Airship的实施文件位于库中,因此无法进行调整。 我已经尝试了许多不同的东西离开这里。
[[DataModel sharedModel] saveContext];
[[self tableView] reloadData];
// LessonListViewController *lessonListVC = [[LessonListViewController alloc] initWithNibName:@"LessonListView" bundle:nil];
UserData *UserData_Array = [dm.UserData_Array objectAtIndex:0];
// lessonListVC.courseID = UserData_Array.current_levelName;
// lessonListVC.lessonsArray = UserData_Array.current_level;
NSLog(@"Current level name:%@",UserData_Array.current_levelName);
NSLog(@"Lessons array:%@",UserData_Array.current_level);
// lessonListVC.navigationItem.hidesBackButton = YES;
// [self.navigationController popToViewController:lessonListVC animated:YES];
// [UAProductDetailViewController removeFromParentViewController];
self.tabBarController.tabBar.hidden = NO;
[self dismissModalViewControllerAnimated:YES];
但到目前为止还没有任何工作。 希望有人可以按照我的有点混淆的描述并保存头发。
* * 当我回到自己的TableView时,UADetailViews的viewDidUnload中的NSLog调用不会被调用。
答案 0 :(得分:0)
答案在于系统抛出的异常
reason: 'Pushing the same view controller instance more than once is not supported'
您正尝试多次推送UAProductDetailViewController的相同实例。您应该创建一个 new 实例并推送它。
答案 1 :(得分:0)
使用以下命令查看用于解除模态视图控制器的代码块会很有帮助:
[self dismissModalViewControllerAnimated:YES];
这对我来说不太合适,因为如果你在委托方法实现中调用它,“self”会引用你的对象。如果您通过委托方法接收对其视图控制器的引用,请尝试使用它来关闭它。如果您尝试从自己的视图控制器中解除它,并且您正在运行iOS 5.0,则需要使用presentViewController而不是parentViewController进行引用,例如:
[[self presentingViewController] dismissModalViewControllerAnimated:YES];