ios - 关闭 UIViewController 时 EXC_BAD_ACCESS 崩溃
<p><p>我有两个按钮触发 segues 到两个不同的 UIViewCONtrollers,使用以下代码:</p>
<pre><code>- (IBAction)newTransButton:(UIButton *)sender
{
;
}
- (IBAction)switchAccountButton:(UIButton *)sender
{
;
}
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
NSManagedObjectContext *localContext = ;
if ([ isEqualToString:@"newTransSegue"])
{
UINavigationController *navController = (UINavigationController *)segue.destinationViewController;
AddTransactionVC *atvc = (AddTransactionVC *)navController.topViewController;
atvc.delegate = self;
WMMGTransaction *addedTransaction = (WMMGTransaction *);
addedTransaction.account = self.currentAccount.name;
atvc.thisTransaction = addedTransaction;
}
else if ([ isEqualToString:@"selectAccountSegue"])
{
UINavigationController *navController = (UINavigationController *)segue.destinationViewController;
AccountSelectVC *acctSelVC = (AccountSelectVC *)navController.topViewController;
acctSelVC.delegate = self;
}
}
</code></pre>
<p>任一按钮的激活都会转到相应的 ViewController ,但会导致此警告:</p>
<pre><code>Warning: Attempt to present <UINavigationController: 0x7fb99b4dd430> on <FirstViewController: 0x7fb99b565dd0> whose view is not in the window hierarchy!
</code></pre>
<p>每个 ViewController 上都有一个保存和取消导航栏按钮。除了上面提到的之外,一切都按预期工作,除了 <code>newTransSegue</code> 上的 ViewController 上的 Cancel 按钮,它关闭了 VC,但应用程序因以下错误而崩溃:</p>
<p><code>EXC_BAD_ACCESS(代码 = 1,地址 = 0x7f87394af29)</code></p>
<p>这是我用来关闭该 VC 的委托(delegate)方法:</p>
<pre><code>-(void)addTransactionViewControllerDidCancel
{
;
}
</code></pre>
<p>我已经为此工作了几天,并尝试删除 segues 并在 Storyboard 中重新创建它们,以及对导航 Controller 执行相同的操作。我在某个地方偏离了轨道,但看不到确切的位置。 </p>
<p>我当然可以使用一些指导。 :)</p></p>
<br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
<p><p>好的,我研究了@Jay 提供的引用资料。原来我以前见过它,但只是第 1 部分。在第 2 部分中,我发现了对 Enable Zombie Objects 的引用,我做到了。现在,当应用程序崩溃时,我收到了这条消息:,它指出了 Storyboard中的一个问题。</p>
<p>在检查 Storyboard 时,我惊讶地发现,所讨论的 ViewController 的表示形式与周围的 ViewController 不同。我希望我做了一个截图,但在狩猎的热潮中,我没有。 </p>
<p>无论如何,进一步的研究出现了<a href="https://stackoverflow.com/questions/27681488/uilayoutguide-isdescendantofview-message-sent-to-deallocated-instance-0x174" rel="noreferrer noopener nofollow">this question (and its associated comments)</a> .我的调查显示,虽然我启用了 Size Classes,但由于某种我无法解释的原因,Simulated Metrics 下的相关 View Controller 的大小已设置为“Freeform”。我将它重置为“推断”,现在一切似乎运行正常——没有崩溃。希望我能详细解释一下,但我对结果很满意!</p></p>
<p style="font-size: 20px;">关于ios - 关闭 UIViewController 时 EXC_BAD_ACCESS 崩溃,我们在Stack Overflow上找到一个类似的问题:
<a href="https://stackoverflow.com/questions/29334284/" rel="noreferrer noopener nofollow" style="color: red;">
https://stackoverflow.com/questions/29334284/
</a>
</p>
页:
[1]