0
我被困在教程中,試圖用工具欄切換視圖。我的代碼生成良好,我把一些警報檢查工具欄正在工作,它是。但我插入的子視圖根本沒有顯示出來。任何人都可以幫忙嗎?insertSubView:未顯示我的視圖
這是我的主控制器代碼..
MainViewController.h是
#import @class FlavourPickerView; @class ShakeView; @class ResultsView; @interface MainViewController : UIViewController { IBOutlet FlavourPickerView *flavourPickerView; IBOutlet ShakeView *shakeView; IBOutlet ResultsView *resultsView; } @property (retain,nonatomic) FlavourPickerView *flavourPickerView; @property (retain,nonatomic) ShakeView *shakeView; @property (retain,nonatomic) ResultsView *resultsView; -(IBAction)loadFlavourPickerView:(id)sender; -(IBAction)loadShakeView:(id)sender; -(IBAction)loadResultsView:(id)sender; -(void)clearView; @end
這裏是MainViewController.m
#import "MainViewController.h" #import "FlavourPickerView.h" #import "ShakeView.h" #import "ResultsView.h" @implementation MainViewController @synthesize flavourPickerView; @synthesize shakeView; @synthesize resultsView; -(IBAction)loadFlavourPickerView:(id)sender{ UIAlertView *alertDialog; alertDialog = [[UIAlertView alloc] initWithTitle:@"Flavour selected" message:@"Seems to work" delegate:nil cancelButtonTitle:@"OK!" otherButtonTitles:nil]; [alertDialog show]; [alertDialog release]; [self clearView]; [self.view insertSubview:flavourPickerView.view atIndex:10]; } -(IBAction)loadShakeView:(id)sender{ UIAlertView *alertDialog; alertDialog = [[UIAlertView alloc] initWithTitle:@"Shaker selected" message:@"Seems to work" delegate:nil cancelButtonTitle:@"OK!" otherButtonTitles:nil]; [alertDialog show]; [alertDialog release]; [self clearView]; [self.view insertSubview:shakeView.view atIndex:0]; } -(IBAction)loadResultsView:(id)sender{ UIAlertView *alertDialog; alertDialog = [[UIAlertView alloc] initWithTitle:@"Results selected" message:@"Seems to work" delegate:nil cancelButtonTitle:@"OK!" otherButtonTitles:nil]; [alertDialog show]; [alertDialog release]; [self clearView]; [self.view insertSubview:resultsView.view atIndex:0]; } -(void)clearView{ if(flavourPickerView.view.superview){ [flavourPickerView.view removeFromSuperview]; }else if(shakeView.view.superview){ [shakeView.view removeFromSuperview]; }else{ [resultsView.view removeFromSuperview]; } } // Implement viewDidLoad to do additional setup after loading the view, typically from a nib. - (void)viewDidLoad { [self loadFlavourPickerView:nil]; [super viewDidLoad]; } - (void)didReceiveMemoryWarning { // Releases the view if it doesn't have a superview. [super didReceiveMemoryWarning]; // Release any cached data, images, etc that aren't in use. } - (void)viewDidUnload { // Release any retained subviews of the main view. // e.g. self.myOutlet = nil; } - (void)dealloc { [flavourPickerView release]; [shakeView release]; [resultsView release]; [super dealloc]; } @end
和這裏是另一個的一個的一個例子視圖,從FlavourPickerView.h開始
#import @interface FlavourPickerView : UIViewController { } @end
和FlavourPickerView.m
#import "FlavourPickerView.h" @implementation FlavourPickerView - (void)didReceiveMemoryWarning { // Releases the view if it doesn't have a superview. [super didReceiveMemoryWarning]; // Release any cached data, images, etc that aren't in use. } - (void)viewDidUnload { [super viewDidUnload]; // Release any retained subviews of the main view. // e.g. self.myOutlet = nil; } - (void)dealloc { [super dealloc]; } @end
還有爲flavourPickerView筆尖和我已經加入到子視圖我MAINVIEW,設置爲FlavourPickerView類和筆尖的名字是FlavourPickerView.xib。
已經在上面的例子中添加了更多的代碼,並指出你關於XXXViewController的有效觀點,是有道理的。 – 2010-09-05 16:54:44
您是否試圖以編程方式添加控制器而不是使用Interface Builder? – rano 2010-09-05 17:50:51