gpt4 book ai didi

ios - UIPopover Presentation 和 UIPopover dismissing 导致崩溃

转载 作者:行者123 更新时间:2023-11-29 01:50:36 27 4
gpt4 key购买 nike

几个月来我一直在开发应用程序,没有出现任何弹出窗口问题。突然间,今天的弹出窗口变得一团糟。

我已经尝试了几种不同的方法,无论我何时通过按下弹出窗口中的按钮或点击弹出窗口之外的按钮来关闭弹出窗口,应用程序都会崩溃。

使用 Instruments,我可以看到只有在弹出窗口被关闭后才会发生僵尸引用:

*** -[UITransitionView willRemoveSubview:]: message sent to deallocated instance 0x7f9985bcd980

所以我已经记录了那个堆栈,但没有太多帮助,因为整个堆栈都与 UIKit 和内置动画等有关。

使用标准的 UIPopovers

self.popover = [[UIPopoverController alloc] initWithContentViewController:self.navVC];
self.popover.backgroundColor = [UIColor accentColor];
self.popover.delegate =self;
[self.seatingChartPopover presentPopoverFromRect:CGRectMake(x,y, 1, 1)
inView:self.view permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];

或者使用ios8中新的UIPopoverPresentationController方法

self.navVC.modalPresentationStyle = UIModalPresentationPopover;

UIPopoverPresentationController* popover = self.navVC.popoverPresentationController;
self.navVC.preferredContentSize = [self.childVC preferredContentSize];
popover.sourceView = self.view;
popover.sourceRect = CGRectMake(x,y, 1, 1);
popover.permittedArrowDirections = UIPopoverArrowDirectionAny;
[self presentViewController:self.seatingChartNavController animated:YES completion:nil];

我已经确保所有涉及的 View Controller 都有一个强引用。

正如我提到的,我已经几个月没有更改显示此弹出窗口的代码,直到今天它一直运行良好。我花了几个小时对此进行调试,但无济于事。

此外,如果我只是将 self.navVC 作为普通模态视图呈现,则该 View 可以正常显示和关闭。只有当它设置为popover时才会失败

在此先感谢您的帮助。

最佳答案

我很惭愧地承认我不小心在我的一个 UIView 类别中放置了 dealloc 方法。

令我感到惊讶的是,这并没有引发任何类型的编译器警告,但在删除它之后,就再也没有出现任何奇怪的崩溃了。

关于ios - UIPopover Presentation 和 UIPopover dismissing 导致崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31468349/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com