一種選擇是,聲明你ViewControllers爲您的應用程序代理
的實例變量屬性添加到您的視圖控制器類說(A和B)。
說你想通過您的視圖控制器之間的對象可以將屬性添加到每個:
@interface AViewController : UIViewController {
BViewController *b;
}
@property (nonatomic, retain) BViewController *b;;
@end
@interface BViewController : UIViewController {
AViewController *a;
}
@property (nonatomic, retain) AViewController *a;
@end
當你初始化你的視圖控制器然後可以設置該屬性先前初始化對象上下文。
你已經提到了一個標籤欄控制器。如果您的視圖控制器通過IB有線所有你需要做的是設置在您的應用程序委託的applicationDidFinishLaunching這些參數:方法,顯示標籤欄控制器前:
@interface MyAppDelegate : NSObject <UIApplicationDelegate, UITabBarControllerDelegate>
{
AViewController *aViewController;
BViewController *bViewController;
...
}
@property (retain) IBOutlet AViewController *aViewController;
@property (retain) IBOutlet BViewController *aViewController;
@end
@implementation MyAppDelegate
...
- (void)applicationDidFinishLaunching:(UIApplication *)application
{
...
aViewController.b = bViewController;
bViewController.a = aViewController;
[window addSubview:tabBarController.view];
[window makeKeyAndVisible];
}
創建對象viewControllers你可以使用
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Storyboard" bundle:nil];
ViewController* viewController = [storyboard instantiateViewControllerWithIdentifier:@"ViewController"];