您可以使用delagate。很容易
因此在您的信息視圖控制器中執行此操作;
在InformationViewController.h
@protocol InformationViewControllerDelegate;
@interface InformationViewController : UIViewController {
id <InformationViewControllerDelegate> delegate;
}
@property (nonatomic, assign) id <InformationViewControllerDelegate> delegate;
- (IBAction)returnBack:(id)sender;
@end
@protocol InformationViewControllerDelegate
- (void)InformationViewControllerDidFinish:(InformationViewController *)controller;
@end
在InformationViewController.m
- (IBAction)returnBack:(id)sender {
[self.delegate InformationViewControllerDidFinish:self];
}
而在你需要像這樣的任何視圖控制器使用委託:
在HomeViewController。 h
#import "InformationViewController.h"
@interface HomeViewController : UIViewController <InformationViewControllerDelegate> {
}
編寫方法從主頁視圖的視圖改變爲信息查看
- (IBAction)goToInformationView:(id)sender;
在HomeViewController.m
- (IBAction)goToInformationView:(id)sender {
InformationViewController *controller = [[InformationViewController alloc] initWithNibName:nil bundle:nil];
controller.delegate = self;
// You can chose the transition you want here (they are 4 see UIModalTransitionStyle)
controller.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
[self presentModalViewController:controller animated:YES];
[controller release];
}
而最後但並非最不重要的委託方法是當InformationViewController通知HomeViewController練完
- (void)InformationViewControllerDidFinish:(InformationViewController *)controller {
[self dismissModalViewControllerAnimated:YES];
}
我希望它能幫助
這是非常混亂......如果你遵循命名方案,事情會好很多!你的根視圖控制器是一個叫做'MainViewController'的類嗎? 'Home'是一個UIView或一個UIViewController(你應該分別命名爲'HomeView'或HomeViewController')。同樣,最好命名爲PreGameInfo'PreGameInfoViewController'。 – 2011-04-30 15:43:31
現在回到你的問題。我假設你沒有使用UINavigationController。在嘗試添加其視圖之前,您是否已初始化您的'PreGameInfoViewController'? – 2011-04-30 15:45:05