IOS 入門開發之分頁欄TabBar的使用
雨松MOMO原創文章如轉載,請註明:轉載至我的獨立網域名稱部落格雨松MOMO程式研究院,原文地址:http://www.xuanyusong.com/archives/602
一般TableBar放置在螢幕的最下方會有很多平級的按鈕,使用者可以擊不同的按鈕切換畫面中顯示的視圖,TableBar可以使用系統內建的也可以自己繼承重寫它的方法實現自訂TableBar,今天我們主要討論系統內建的TableBar的簡單使用。
如所示,系統內建的TableBar螢幕中最多隻可以放置5個,如果超過5個系統會自動產生一個More按鈕,會將超出的以一個列表的形式展現出來,貼出代碼我們分析一下。
NSMutableArray * controllers : 存放TableBar中的每一個Item,最後將它整體顯示在螢幕中。
NSArray *item :存放著須要在分頁欄中顯示的名稱,之後使用for迴圈依次遍曆 ,將其添加入顯示視圖。
TableViewController :控制TableBar點擊後的顯示視圖。
最後把它添加到顯示視圖當中。。
TableViewAppDelegate.m
#import "TableViewAppDelegate.h"#import "TableViewController.h"@implementation TableViewAppDelegate@synthesize window = _window;- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{ NSMutableArray *controllers = [NSMutableArray array]; NSArray *item = [NSArray arrayWithObjects:@"雨松MOMO",@"若若娃",@"小可愛",@"哇哢哢",@"小老虎",@"學蘋果",@"快樂樂",@"壽司卷", nil]; //數組數量 int count = [item count]; for (int i = 0; i < count; i++) { //建立TableViewController TableViewController * tabViewController = [[TableViewController alloc]initController:[item objectAtIndex:i]]; //設定標題 [tabViewController setTitle:@"雨松MOMO的程式世界"]; //綁定tabViewController用來響應按鈕點擊事件 UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:tabViewController]; //設定標題 nav.title = [item objectAtIndex:i]; //設定圖片 nav.tabBarItem.image = [UIImage imageNamed:@"title.png"]; //設定風格為預設風格 nav.navigationBar.barStyle = UIBarStyleDefault; //添加這個UINavigationController[controllers addObject:nav]; //釋放對象 [nav release];} //建立UITabBarController,將顯示的內容添加進去UITabBarController *bar = [[UITabBarController alloc] init];bar.viewControllers = controllers;bar.customizableViewControllers = controllers; //添加到顯示視窗中[self.window addSubview:bar.view]; // Override point for customization after application launch. [self.window makeKeyAndVisible]; return YES;}@end
如所示,多餘的Item會以列表的形式展示。
-(id) initController:(NSString *)str :用於初始化,將顯示內容傳入。建立TableBar的時候將名稱作為參數傳入這樣每次切換的時候知道使用者點擊了那個按鈕。這個例子使用者切換點擊按鈕的時候將切換頂部的顯示內容。
-(void)viewDidLoad:這個方法很重要,使用者沒按點擊按鈕都會重新載入,因為上面設定了每個Item的Controller都是TableViewController,如果每個頁面顯示的內容都不確定的話,可以多寫幾個Controller類來控制每一個Table頁面的切換。
裡面的代碼我就不多解釋了,之前的博文有詳細的說明噢~
TableViewController.m
#import "TableViewController.h"@implementation TableViewController-(id) initController:(NSString *)str{ self = [super init]; if(self) { //每次點擊新的標籤,將顯示內容值賦給showString showString = str; } return self;}- (void)viewDidLoad{ [super viewDidLoad]; //建立label視圖 UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 320, 30)]; //設定顯示內容 label.text = [NSString stringWithFormat:@"%@%@",@"您選中了",showString]; //設定背景顏色 label.backgroundColor = [UIColor blueColor]; //設定文字顏色 label.textColor = [UIColor whiteColor]; //設定顯示位置置中 label.textAlignment = UITextAlignmentCenter; //設定字型大小 label.font = [UIFont fontWithName:[[UIFont familyNames] objectAtIndex:10] size:20]; //建立圖片視圖 UIImageView *imageview = [[UIImageView alloc] initWithFrame: CGRectMake(100, 150, 120, 120)]; //設定圖片的顯示的資源路徑 [imageview setImage:[UIImage imageNamed:@"0.jpg"]]; //添加到視圖中 [self.view addSubview:label]; [self.view addSubview:imageview]; //釋放對象 [label release]; [imageview release];}- (void)viewDidUnload{ [super viewDidUnload]; // Release any retained subviews of the main view. // e.g. self.myOutlet = nil;}@end
最後如果你還是覺得我寫的不夠詳細 看的不夠爽 不要緊我把原始碼的貼出來 歡迎大家一起討論學習雨松MOMO希望可以和大家一起進步。今天和同事出去踢球去了,出了好多汗太爽了~~ MOMO建議大家在工作之餘多多加強鍛煉,身體可是革命的本錢哦,哇哢哢~~
:http://www.xuanyusong.com/archives/602