IOS / Objective-C / Storyboard:推送视图控制器的后退按钮未激活

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了IOS / Objective-C / Storyboard:推送视图控制器的后退按钮未激活相关的知识,希望对你有一定的参考价值。

我有一个VC,使用代码并引用其Storyboard标识符将另一个VC推入堆栈。但是,由于某种原因,新推送的VC的后退按钮不起作用并且显示“返回”而不是正常推送它的VC的名称。

呈现VC中的代码如下:

UIStoryboard * storyBoard = self.storyboard;

IDProfilePicVC *picVC =
[storyBoard instantiateViewControllerWithIdentifier:@"addprofile"];
//push using existing nav
[self.navigationController pushViewController:picVC animated:YES];

当代码成功将新VC推送到堆栈时,按钮显示“Back”而不是firstVC的名称,而且,它处于非活动状态。按下它时没有任何反应。

我在应用程序的其他地方使用此代码,它的行为与预期一致。在第一个或第二个VC中没有代码使后面的按钮无效,我无法理解为什么会发生这种情况。顺便说一下,我还在viewdidload中的代码中设置标题。

是否有任何其他设置,例如,在故事板中可以解释此行为?第二个VC嵌入了nav或它自己的值,但在这种情况下我绕过了导航。

编辑:

我删除了额外的导航(其中嵌入了第二个VC)并且它没有改变任何东西

第二次编辑

从第一个VC开始,我能够毫无问题地转到另一个VC。当我从另一个VC转到第二个VC时,我得到了无效的Back按钮。这表明问题出现在第二个VC的某些环境中。第二个VC打开,它只有一个非工作的“后退”按钮而不是一个带有发送VC名称的工作后退按钮。

在此先感谢您的任何建议。

答案

如果其他人有这个问题并且将来来到这里,这就是造成它的原因。我发现目标VC的故事板中的后退按钮将阻止导航控制器作为推送的一部分自动创建的后退按钮。后台按钮在故事板上不可见,但出现在大纲窗格中的“导航项,左栏按钮项”下。在那里删除它解决了这个问题。

以上是关于IOS / Objective-C / Storyboard:推送视图控制器的后退按钮未激活的主要内容,如果未能解决你的问题,请参考以下文章

iOS进阶:Objective-C底层原理

如何从Javascript调用Objective-C方法并将数据发送回iOS中的Javascript?

iOS中Objective-C已死Swift当立?

使用objective-c检查iOS更新是不是可用?

Objective-C 对象(内容根据iOS编程编写)

IOS/Objective-C:用于识别命名实体的 NSLinguisticTagger