子视图控制器关闭后重新加载根视图控制器

Posted

技术标签:

【中文标题】子视图控制器关闭后重新加载根视图控制器【英文标题】:Reload root view controller after child view controller dismiss 【发布时间】:2012-10-07 20:03:22 【问题描述】:

我有这个结构:

Root View controller -> View Controller (Language choose) Presented by modal segue。

是否可以使用委托来重新加载根视图控制器,以新选择的语言值呈现它。我通过 localize.strings 条目使用运行时语言选择。问题是,尽管语言更改后,子语言以新语言显示,但根视图仍以旧语言显示。

非常感谢。

【问题讨论】:

【参考方案1】:

一旦获得委托或块,您必须加载本地化的 nib,并从中获取字符串。 NSLocalizedString 会从用户默认加载首选语言,然后更改将在重新启动应用程序后生效。这就是您自己手动加载适当的 lproj 的原因。

你可以看看一个演示应用here

【讨论】:

【参考方案2】:

是的,使用委托方法或块。当 rootViewController 中的任何一个被触发时,关闭子视图并进行更改。

【讨论】:

谢谢。但是,如何让根视图控制器重新加载其组件的新本地化值?

以上是关于子视图控制器关闭后重新加载根视图控制器的主要内容,如果未能解决你的问题,请参考以下文章

关闭模态视图控制器后在根视图控制器中执行操作

重新加载根视图控制器

根视图控制器的子视图控制器位于根之上

移动到根视图控制器而不显示子视图

单击按钮导航到根视图控制器

设置根视图控制器,然后以编程方式导航到下一个视图