我在一个选项卡栏控制器中有两个导航控制器指向同一个视图。这给了我在两个不同的选项卡中该视图的两个不同示例。现在我希望该视图根据其父导航控制器有不同的行为。
if id == "parent1"{ //do something } else { //do something else }
那么,如何在ViewController代码中获得navigationController的标识符呢?
ViewController
navigationController
zphenhs41#
你可以使用restorationIdentifier,你可以在故事板中设置它;它位于身份检查器中故事板标识符字段的正下方。从视图控制器的属性获取当前导航控制器
restorationIdentifier
let id = self.navigationController.restorationIdentifier
请注意,通过设置此属性,您将告知系统应保存视图控制器以进行恢复,这可能会产生意外的结果。请参阅documentation。或者,您可能希望考虑在视图控制器类上使用子类或某种属性(例如,可能使用IBInspectable等)。
1条答案
按热度按时间zphenhs41#
你可以使用
restorationIdentifier
,你可以在故事板中设置它;它位于身份检查器中故事板标识符字段的正下方。从视图控制器的属性获取当前导航控制器
请注意,通过设置此属性,您将告知系统应保存视图控制器以进行恢复,这可能会产生意外的结果。请参阅documentation。
或者,您可能希望考虑在视图控制器类上使用子类或某种属性(例如,可能使用IBInspectable等)。