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。
将视图添加到此UIViewController视图时,是否正确初始化了flavourPickerView , shakeView和resultsView ? 另一件事:避免调用一个UIViewController只是'XXXView',而是尝试'XXXViewController'
