2012-10-29 22 views
0

我正在開發一個iOS應用程序,我希望它有超過10個視圖。在Android中,您必須創建一個佈局,然後創建它的類。我一直試圖在XCode中實現這一點,但我不知道該怎麼做...iOS應用程序有很多不同的視圖

這個想法是有一個視圖的類,以便每個類管理自己的視圖。我到目前爲止所做的是:

1-創建一個名爲Overview並且子類爲UIViewController的新Objective-C類,然後檢查Witch XIB for user interface。

2〜顯示,鑑於我使用:[[NSBundle mainBundle] loadNibNamed:@"Overview" owner:self options:nil];

3-和在viewDidLoad中我用這個:self.view.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"overview_portrait.jpg"]];改變背景圖像

我能看到的看法,但背景不會改變,當我添加按鈕,我點擊它們會引發錯誤:-[ViewController push:]: unrecognized selector sent to instance 0x7427220

如何才能實現我想要的?

預先感謝您!

回答

1

你正在顯示視圖,但你沒有加載它的控制器,這就是爲什麼控制器的方法沒有被調用。您必須創建一個控制器類的實例並從當前控制器中推送它。類似這樣的:

Overview *overview = [[Overview alloc] initWithNibName:@"Overview" bundle:nil]; 
[self pushViewController:overview animated:YES]; 
+0

謝謝!我必須在哪裏放置這段代碼?我開始在iOS開發中...... –

+0

這段代碼從當前控制器中提出/推送一個新的控制器,這個地方取決於你正在解決的問題,你必須給我們更多關於它的細節,以便能夠回答這個問題,另外,你是使用故事板還是創建一個基於筆尖的應用程序? – tkanzakic

0

推送ViewControllers適用於導航控制器,所以如果您正在查看界面構建器,如果您的屏幕查看(我不確定是否使用故事板或XIB)如果您可以更改的視圖附加到標有「導航控制器「那麼你可以使用:

 [self.navigationController pushViewController:myNewViewInstance animated:YES]; 

與您正在使用更好的背景圖像:

UIImageView *myBackground = [[UIImageView alloc]initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.width)]; 
      [self.view addSubview:myBackground]; 
      [self.view sendSubviewToBack:myBackground]; 

如果你不使用導航控制器,你可以使用:

 [self presentModalViewController:<#(UIViewController *)#> animated:<#];(BOOL)#>]; 

這將呈現新的視圖控制器,然後回去用:

[self dismissModalViewControllerAnimated:<#(BOOL)#>]; 

對於很多的意見,我覺得故事板是最好的,創建一個新的項目勾選使用故事板箱時,那麼你就可以輕鬆查看所有視圖,並通過按鈕按鈕創建模式轉換,不使用CTRL +單擊並從view1上的按鈕拖動並在view2上的任意位置拖動,然後單擊模式,然後便可以轉換。

+0

謝謝!我必須在哪裏放置這段代碼?我開始在iOS開發中...... –

+0

好吧,如果您嘗試導航不同的屏幕,則presentModalViewController會在特定事件發生時或結束時進入。 對於dismissModalViewController,這將在您之前呈現的屏幕中的事件結束時執行。 背景可以去任何地方viewDidLoad? - (布爾)viewWillAppear 但我想dsuggest閱讀這個快速的小教程,並快速和簡單地進入故事板轉換 http://www.raywenderlich.com/5138/beginning-storyboards-in-ios-5-第1部分 – SeanLintern88

+0

我一直在閱讀該教程,我已經看到故事板更多地將視圖鏈接爲「故事」,而在我的應用中,我想從任何其他視圖訪問所有視圖。例如:我有5個視圖:1,2,3,4,5。在故事板中,我必須訪問以下方式:1 - > 2 - > 3 - > 4 - > 5如果我沒有錯,我想要的是:1 - > 3 - > 2 - > 5 - > 2 - > 4 - > 3 ...我可以實現嗎? –

0

我不確定Android的設置,但對於iOS,您想實例化視圖控制器,而不是nib文件。你想要做的是創建一個新的概述類,並用nib初始化它。

Overview *overviewController = [[Overview alloc] initWithNibName:@"Overview" bundle:nil]; 
相關問題