2010-02-28 58 views
0

我有具有以下啓動視圖控制器:爲什麼didLoad不開火?

- (void)viewDidLoad { 
    [self loadMainMenu:nil]; 
    [super viewDidLoad]; 
} 

這將執行以下操作:

-(IBAction) loadMainMenu:(id) sender { 
     [self.view insertSubview:mainMenuViewController.view atIndex:0]; 
} 

我mainMenu.h有以下幾點:

-(IBAction) loadRules:(id) sender; 
-(IBAction) loadPlayGame:(id) sender; 
-(IBAction) loadHighScores:(id) sender; 
-(IBAction) loadAbout:(id) sender; 

mainMenu.m有以下,並有一個按鈕綁在此以顯示視圖:

-(IBAction) loadPlayGame:(id) sender { 
playGame *playGameViewController = [[rules alloc] 
           initWithNibName:@"playGame" 
           bundle:nil]; 

    [self setModalTransitionStyle:UIModalTransitionStyleCrossDissolve]; 
    [self presentModalViewController:playGameViewController animated:YES]; 
    [playGameViewController release]; 
} 

現在PlayGame的View已經出現,但viewDidLoad永遠不會被擊中。

我在做什麼錯?這不是加載視圖的方式嗎?與往常一樣,提前感謝任何幫助。

順便說一句:代碼:[self setModalTransitionStyle:UIModalTransitionStyleCrossDissolve];什麼都不做......任何和所有的視圖都顯示爲從底部向上滾動。

地理...

+0

除了缺少viewDidLoad之外,您的視圖控制器是否正常顯示?做其他方法(viewWillAppear :, viewDidAppear :)火嗎?你需要在你的新視圖控制器上選擇modalTransitionStyle,而不是當前的視圖控制器(將要呈現的那個)。 – 2010-02-28 18:53:26

+0

不要以爲這會解決它,但你可能想先調用'super viewDidLoad'。 – 2010-03-01 01:12:36

回答

1

這個代碼是沒有意義的:

playGame *playGameViewController = [[rules alloc] 
          initWithNibName:@"playGame" 
          bundle:nil]; 

什麼是rules在這裏?它是一個實例變量?它應該是視圖控制器的類名稱。例如PlayGameViewController

要麼你做錯了,要麼你的命名約定對於類和筆尖都是很差錯誤。