如何从其他类访问根视图控制器中的方法?

时间:2010-04-29 23:45:40

标签: iphone

如果这很容易,我道歉。

我有我的根视图控制器NB_ViewController。我有另一个名为ShowScreen的类。 ShowScreen如何访问NB_ViewController中的方法?

提前非常感谢你。

1 个答案:

答案 0 :(得分:1)

  1. 在您的应用程序委托中创建一个“全局”属性,该属性保留对根视图控制器的引用,例如@property(nonatomic, retain) UIViewController *rootViewController

  2. 在app委托的-applicationDidFinishLaunching:方法中实例化根视图控制器时,将self.rootViewController属性设置为等于新实例化的视图控制器

  3. 在常量文件中(或在您要使用它的类标题中)添加一个#define宏,以便您可以从任何地方访问应用程序委托,例如#define UIAppDelegate ((MyAppDelegate *)[UIApplication sharedApplication].delegate)

  4. ShowScreen中,通过应用委托调用根视图控制器的属性或方法,例如: [[UIAppDelegate rootViewController] someRootVCProperty][[UIAppDelegate rootViewController] someRootVCMethod:foo withArgument:bar]

  5. 如果您使用Interface Builder并且相应的根视图控制器IBOutlet被称为rootViewController,则步骤2应该是可选的。