iphone – Xcode:视图控制器和App Delegate之间的连接
这可能是一个noob问题,但无法理解它.
如何在2个viewcontrollers或视图控制器和我的appdelegate之间建立连接? @class RootViewController; @interface TabBarWithSplitViewAppDelegate : NSObject <UIApplicationDelegate,UITabBarControllerDelegate> { RootViewController *rootViewController; } @property (nonatomic,retain) IBOutlet RootViewController *rootViewController; @end 然后在Interface Builder中创建一个连接.从我的根视图控制器到应用程序委托,并自动告诉我这是我上面添加的rootViewController. 如果你在app委托“m”文件上执行此操作: #import "RootViewController.h" NSLOG(@"Controller %@",rootViewController); 它会给你一堆数字,表明有连接 但正如您所知,xcode 4已经发生了变化,因为您通常不再拥有可以创建连接的main.xib,而是以编程方式执行几乎所有这些连接. 我已尝试使用相同的代码而不使用“IBOutlet”添加: rootViewController = [[RootViewController]alloc] init; 但似乎没什么用. 任何人都可以帮忙吗? 提前致谢 解决方法
您基本上想要在应用程序委托中创建视图控制器的ivar.
ViewController *myVC; @property (nonatomic,retain) IBOutlet ViewController *myVC; 然后在实现文件中合成它. 然后当视图控制器加载时,调用以下内容: - (void)viewDidLoad { AppDelegateClass *appDelegate = (AppDelegateClass *)[[UIApplication sharedApplication] delegate]; appDelegate.myVC = self; } 此时,您现在可以从应用程序委托直接连接到视图控制器.同样,您可以执行相反的操作从视图控制器调用应用程序委托方法.在这种情况下,您将在视图控制器的标题中设置一个委托. id delegate; @property (nonatomic,assign) id delegate; 再次在实现文件中合成它. 现在当你在viewDidLoad中时,你会调用这样的东西: - (void)viewDidLoad { self.delegate = (AppDelegateClass *)[[UIApplication sharedApplication] delegate]; } 这应该会给你你需要的东西,所以我希望有所帮助 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |