IOS 入門開發之分頁欄TabBar的使用(四)

來源:互聯網
上載者:User
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

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.