2012-11-03 40 views
0

剛剛開始爲Xcode和iPhone開發一個很好的小教程。我已創建.I添加的代碼在viewDidLoad中(ViewController.m)自定義按鈕其中*的按鈕showAboutPage功能是指向與從一個自定義按鈕更改爲另一個視圖

[aboutBtn addTarget:self action:@selector(showAboutPage) forControlEvents:(UIControlEventTouchUpInside)]; 

我的按鈕被正確地示出一個簡單的單一視圖的項目),並具有所有必要的代碼用於突出顯示,顏色,字體。

我應該以推入第二視圖(redView.xib)內

- (void) showAboutPage 
{ 

} 

實現什麼代碼。 玩故事板很容易,我可以通過「連接線條」/拖拽拖放來實現,但是編程是我想要的,所以我可以學習正確的方法。 在此先感謝。

+0

你應該清楚你是否想要一個視圖或視圖控制器。推可能是更好的視圖控制器和redView.xib是一個更好的名稱視圖不是視圖控制器。 – sunkehappy

+0

我認爲你的答案稍後在這個線程應該做的工作。 – Theodoros80

回答

0

假設你正在做的這一切都在視圖控制器類(這是我從你的描述推斷):

- (void)showAboutPage 
{ 
    AboutPageViewController *about = [[AboutPageViewController alloc] init]; 
    [self presentViewController:about animated:YES]; 
    // If you're not using ARC: 
    [about release]; 
} 
+0

謝謝,我會檢查並得到結果。 – Theodoros80

+0

他想添加一個視圖而不是視圖控制器。 – sunkehappy

+1

@sunkehappy由於OP在他的問題中使用了不正確和不一致的術語,並且他擁有的根對象是視圖控制器,所以我假設他實際上想添加視圖控制器。 – 2012-11-03 15:45:00

1

您的視圖的第一個字母大寫應,redView => RedView。另一個建議是,我認爲使用IBAction比將按鈕添加到一個按鈕更好。在添加了RedView.h,RedView.m和RedView.xib之後,您應該將RedView.xib的類設置爲Interface Builder中的RedView。然後你可以使用它像這樣:

- (void) showAboutPage 
{ 
    RedView *redView = [[[NSBundle mainBundle] loadNibNamed:@"RedView" owner:self options:nil]] objectAtIndex:0]; 
    [self.view addSubview:redView]; 
} 
+0

我得到這些錯誤:預期標識符 意外的接口名稱'RedView':預期表達式。不知道問題出在哪裏。 – Theodoros80

+0

我的意思是你應該重構你的類從redView到RedView(右鍵單擊變量redView,選擇Refactor-> rename),然後嘗試我寫的代碼。 – sunkehappy

0

雖然@ H2CO3提供了非常正確的答案,我只想補充一點,你也可以用更少的代碼,以及更多的結構做到這一點,只要你喜歡用界面生成器。在ViewController1中爲ViewController 2創建一個segue,並將其標識符設置爲unique,比如ToViewController2。然後你的方法看起來是這樣的:

- (void) showAboutPage { 
    [self performSegueWithIdentifier:@"ToViewController2" sender:self]; 
} 

假設你想傳遞一些變量,以及,你可以這樣做:

- (void) prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { 
    if ([segue.identifier isEqualToString:@"ToViewController2"]) { 
     [segue destinationViewController setYourVariable:variable]; 
     // Pass your variables on to the next view here. 
    } 
} 

關於這個好東西,是一切應該是傳遞給下一個ViewControllers,假設你有幾個來自該ViewController的segues,正在傳遞這個方法。

相關問題