2012-07-01 65 views
-1

我正在設計一個主頁的iPhone應用程序。這個頁面有多個按鈕(6)可以執行不同的操作。iPhone結構ViewController

2個按鈕是一個簡單的視圖,只是有一些信息,並返回到主屏幕。下一個按鈕打開一封電子郵件,我相信這只是一種觀點,所以與其他兩種不同。

這是它變得複雜的地方。一個按鈕將拍攝一張照片,另一個按鈕將從圖書館中選擇一張。一旦完成,它將編輯它並創建一個我將創建的對象。該對象將存儲在一個數組中,該數組將通過主頁上的最後一個按鈕打開,UITableViewController將控制該數組。

我的第一個問題是我應該使用基於導航的視圖控制器還是我可以創建自己的視圖控制器?或者我應該使用一些我不知道的東西?

請幫忙!!!如果你真誠的謝謝你!

編輯:

嗯,我第一次嘗試了我自己的方式,我有唯一的問題是這樣的代碼

- (void) displayView:(int)intNewView { 
    NSLog(@"%i", intNewView); 
    [home.view removeFromSuperview]; 
    Instructions *i = [[Instructions alloc]init]; 
    instructions = i; 
    [self.view insertSubview:instructions.view atIndex:0]; 
} 

這是我SwitchClass,控制主窗口的視圖。我知道它在那裏工作,因爲當它第一次運行時,switch類將它指向主屏幕。我知道該方法被調用,因爲控制檯顯示NSLog的東西,但它不會切換。

回答

0

除了你有6個按鈕的事實,我會嘗試使用UITabBarController來處理你正在做的事情;對我來說這似乎更自然(但你應該找到一種方法將你的按鈕減少到5,否則它們不會一次全部顯示)。

否則,UINavigationController對我來說似乎很好。對於每個按鈕,您推送一個新的控制器來處理該按鈕功能,然後彈出。它應該很容易工作。

編輯:

你試過嗎?

[self.view addSubview:instructions.view]; 
+0

這是自動處理好了我第一次嘗試了我自己的方式,我有唯一的問題是這樣的代碼 - (空)displayView:(INT)intNewView { \t的NSLog(@ 「%i」,intNewView); \t [home.view removeFromSuperview]; \t說明* i = [[Instructions alloc] init]; \t instructions = i; \t [self.view insertSubview:instructions.view atIndex:0]; } 它在我的SwitchClass中,它控制主窗口的視圖。我知道它在那裏工作,因爲當它第一次運行時,switch類將它指向主屏幕。我知道該方法正在被調用,因爲控制檯顯示NSLog的東西。它只是不會開關 –

+0

如果你看不懂我明白。抱歉! –

+1

如果你在代碼中利用ARC,那麼你不需要發佈任何東西(實際上,你不能)。 – bkbeachlabs

0

你的第一個問題是,你應該使用基於導航控制器......所以,當你按下任何按鈕,將打開其他視圖控制器動畫..也導航爲基礎的控制器保持父控制器的軌跡,如果您有任何創建的對象將保留在作爲導航根目錄的父視圖控制器中。

這裏是您應該使用的步驟。

1-在主應用程序委託中創建導航控制器,並使其根爲視圖控制器。

2 - 當您按下具有6個按鈕的視圖控制器時。

3-如果您已將源類型更改爲相機,您可以查看此鏈接以獲取相冊,然後您可以獲取圖像... Photo Libaray

4-一旦你得到的圖像,你可以將它添加到NavigationViewController根存在的NSMutableArray在你的情況將是視圖有6個按鈕。

每次您想要查看包含照片的數組時,您都將使用您保存照片的數組初始化uitableviewcontroller的數據源。

感謝

0

我認爲這個問題是從兩個地方來:

據我瞭解,這些都是不同的視圖控制器,是否正確?他們有他們自己的xib文件?如果是這樣,然後調用:

說明* i = [[Instructions alloc] init];

不足。您需要使用

Instructions *i = [[Instructions alloc] initWithNibNamed:@"Instructions"]; 

爲了包含您已經在界面構建器中構建的視圖。

我發現可能出錯的另一件事是,您將在同一索引處插入所有視圖。將索引想象爲photoshop中的一個圖層。如果您希望新視圖在最後一個視圖之上可見,那麼它需要更高的索引。如果你使用的addSubview:代替insertSubview: atIndex: