【问题标题】:how can i access to UINavigationController with the string name如何使用字符串名称访问 UINavigationController
【发布时间】:2012-04-06 07:51:55
【问题描述】:

我的应用有导航控制器

在运行时我有 NSString *propertyName = @"navController";

我知道它是一种 UINavigationController

如何使用字符串名称访问 UINavigationController

我可能需要使用https://developer.apple.com/library/ios/#documentation/Cocoa/Reference/ObjCRuntimeRef/Reference/reference.html

【问题讨论】:

    标签: iphone ios objective-c-runtime kvc


    【解决方案1】:

    Key-Value Coding 会有所帮助,

    UINavigationController *navController = [self valueForKey:@"navController"];
    

    【讨论】:

      【解决方案2】:

      如果您想使用运行时,您可以使用以下方法从 navigationController 所属的任何类中获取 Ivar:

      Ivar var =  class_getInstanceVariable(your class, "navController");
      

      然后使用该 Ivar,您可以使用此方法调用您的类的实例,以获取 navController 指向的对象

      UINavigationController* controller = object_getIvar(instanceofyourclasswithnavcontroller, var)
      

      【讨论】:

        猜你喜欢
        • 2021-03-31
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-09-05
        • 1970-01-01
        • 1970-01-01
        • 2013-06-07
        • 2016-07-30
        相关资源
        最近更新 更多