2012-04-30 118 views
4

我想寫一個IBAction爲切換視圖控制器爲我的iPhone應用程序:如何在iOS開發中切換新的視圖控制器?

-(IBAction)changeToView2:(id)sender 
{ 
    if (self.view2 == nil) 
    { 
     view2 = [[UIViewController alloc] initWithNibName:@"View2Controller" bundle:[NSBundle mainBundle]]; 
    } 
    self.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal; 
    [self presentedViewController: view2 animated:YES]; 
} 

但是,我得到一個生成錯誤注意到沒有接口聲明「presentedViewController:動畫:」。爲什麼?

將此更改爲「presentViewController:animated:」會產生相同的錯誤。

+0

有趣的是,XCode仍然指出「沒有可見的@interface聲明選擇器presentViewController:animated:」如果我用它來代替。另外,當我開始鍵入函數名稱時,自動完成不會提及此函數名稱。 –

+0

另外,什麼是'完成:<#^(void)completion#>'?看起來好像這個函數有第三個參數。 –

+1

這段代碼是視圖控制器類的一部分嗎?還是一個觀點?項目導航是基於什麼?即有沒有導航控制器? – Damo

回答

7

的方法是presentViewController:animated:completion:,不presentViewController:animated:

+0

雅克你的面膜不是那麼模糊! :) –

+1

+1,並且需要將modalTransitionStyle應用於新的視圖控制器才能看到它的效果。 – danh

+0

謝謝,但XCode仍然指出「沒有可見的@interface聲明選擇器presentViewController:animated:」。 –

1

而不是

[self presentedViewController: view2 animated:YES]; 

嘗試

[self presentViewController: view2 animated:YES]; 
+0

謝謝,但XCode仍然指出「沒有可見的@interface聲明選擇器presentViewController:animated:」。 –

1
[self presentViewController:view2 animated:YES]; 
+0

謝謝,但XCode仍然指出「沒有可見的@interface聲明選擇器presentViewController:animated:」。 –

+0

「自我」是UIViewController嗎? – user754905

+0

你可以去你的頭文件並在這裏​​發佈界面嗎? – user754905

0

試試這個編輯好的code.I認爲這將是對你有幫助。

-(IBAction)changeToView2:(id)sender 
{ 
if (self.view2 == nil) 
{ 
    view2 = [[UIViewController alloc] initWithNibName:@"View2Controller" bundle:nil]; 
} 
self.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal; 
[self presentedViewController: view2 animated:YES]; 
}