iOS學習之UINavigationController詳解與使用(二)頁面切換和segmentedController 接上篇,我們接著講Navigation 的Toolbar。
1、顯示Toolbar
在RootViewController.m的- (void)viewDidLoad方法中添加代碼,這樣Toobar就顯示出來了。
[self.navigationController setToolbarHidden:NO animated:YES];
2、在ToolBar上添加UIBarButtonItem
建立幾個UIBarButtonItem,然後以數組的形式添加到Toolbar中
UIBarButtonItem *one = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAdd target:nil action:nil]; UIBarButtonItem *two = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemBookmarks target:nil action:nil]; UIBarButtonItem *three = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAction target:nil action:nil]; UIBarButtonItem *four = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemEdit target:nil action:nil]; UIBarButtonItem *flexItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil]; [self setToolbarItems:[NSArray arrayWithObjects:flexItem, one, flexItem, two, flexItem, three, flexItem, four, flexItem, nil]];
效果:
注意:用 [self.navigationController.toolbar setItems:(NSArray *) animated:<#(BOOL)#>]這個方法添加item是不起效果的。下面我動態自己添加Toolbar時,這個才起效果。
3、動態添加Toolbar
我們在SecondView添加動態Toolbar。
在SecondViewController.h添加
#import <UIKit/UIKit.h>@interface SecondViewController : UIViewController{ UIToolbar *toolBar;}@end
在SecondViewController.m添加
- (void)viewDidLoad{ [super viewDidLoad]; [self.navigationController setToolbarHidden:YES animated:YES]; UIBarButtonItem *addButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemSearch target:self action:@selector(gotoThridView:)]; toolBar = [[UIToolbar alloc] initWithFrame:CGRectMake(0.0, self.view.frame.size.height - toolBar.frame.size.height - 44.0, self.view.frame.size.width, 44.0)]; [toolBar setBarStyle:UIBarStyleDefault]; toolBar.autoresizingMask = UIViewAutoresizingFlexibleTopMargin; [toolBar setItems:[NSArray arrayWithObject:addButton]]; [self.view addSubview:toolBar]; // Do any additional setup after loading the view from its nib.}
先把RootView時顯示的Toobar隱藏
[self.navigationController setToolbarHidden:YESanimated:YES];然後把建立的Toolbar添加的SecondView中,並為Toobar設定了一個Item.
[toolBarsetItems:[NSArrayarrayWithObject:addButton]];
BarButtonItem用 的是UIBarButtonSystemItemSearch, 效果如下:
4、建立ThridView,從SecondView跳轉到
Commad+N建立一個ThridViewController,
這個addButton跳轉到ThridView
-(void)gotoThridView:(id)sender{ ThridViewController *thridView = [[ThridViewController alloc] init]; [self.navigationController pushViewController:thridView animated:YES]; thridView.title = @"Thrid View";}
跳轉Second到Third效果:
到此UINavigationController練習的差不多了。
前面兩篇:
iOS學習之UINavigationController詳解與使用(一)添加UIBarButtonItem
iOS學習之UINavigationController詳解與使用(二)頁面切換和segmentedController
例子代碼:https://github.com/schelling/YcDemo
著作權聲明:本文由http://blog.csdn.net/totogo2010/原創,歡迎轉載分享。請尊重作者勞動,轉載時保留該聲明和作者部落格連結,謝謝