2012年2月8日 星期三

iOS學習_建立一個以UINavigationController為基礎的專案

開發行動化裝置程式有一個很普遍的架構是:一個主要頁面可以轉至其他頁面,點選上一頁後可以返回主選單,再繼續別的功能的操作,或是有一個資料列表,點選後會轉到下一個詳細資訊頁面。而在iOS內就叫做Navigation。

若是整個專案要以Navigation來串聯各個UIView,我們就可以在最初始的UIWindow以UINavigationController動態的加入其他UIView。

h檔

#import
#import "MainViewController.h"

@interface AppDelegate : UIResponder {
UINavigationController *navigator;
}

@property (strong, nonatomic) UIWindow *window;
@property (nonatomic,retain) UINavigationController *navigator;

@end


m檔

-(void) initApp
{
//建立一個navigator
self.navigator = [[UINavigationController alloc] init];

self.navigator.navigationBar.barStyle = UIBarStyleDefault;
//加背景圖
//[self.navigator.navigationBar setBackgroundImage:[UIImage imageNamed:@"bg_image"] forBarMetrics:UIBarMetricsDefault];
//改變按鈕顏色
//[self.navigator.navigationBar setTintColor:[UIColor orangeColor]];

//建立mainView
MainViewController *mainView = [[MainViewController alloc] init];
//加標題
mainView.title = @"主選單";
//將mainView放入navigator中
[self.navigator pushViewController:mainView animated:NO];
//將navigator放入window中
[self.window addSubview:self.navigator.view];
}

說明:
1. 可以在navigationBar.barStyle來設定要顯示的形式
2. 若是想用自己的圖片當作Bar的底圖,可以利用setBackgroundImage
3. UINavigationController只是外部的框架,要放入顯示的View可以利用pushViewController。
4. 最後將設定完成的UINavigationController.view以addSubview放入window

爾後要利用按鈕或是點選TableView以後轉到下一頁,都可以利用self.navigationController pushViewController的語法放入

sv_DMain .title = @"功能一";
[self.navigationController pushViewController:sv_DMain animated:YES];


當你使用這句語法,iOS SDK則會去判斷,目前使用的View是否有UINavigationController,若有則會自動加上應該有的內容。

而最基本的內容就是:Title與返回鍵。

可以得到很不錯的效果:

轉頁後:

沒有留言:

張貼留言