Oli*_*nge 12 iphone cocoa-touch objective-c uitoolbar uikit
我有一个UINavigationController,里面有一个UITableViewController.我想在底部用UIBarButtonItem显示一个ToolBar.ToolBar正在显示,但按钮不会出现.谁知道为什么?
- (void)viewDidLoad {
[super viewDidLoad];
[[self navigationItem] setTitle:@"Selections List"];
[[self navigationItem] setRightBarButtonItem:[[[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAdd target:self action:@selector(addProjectSearch:)] autorelease]];
[[self navigationItem] setLeftBarButtonItem:[self editButtonItem]];
[[super tableView] setDataSource: self];
[[super tableView] setDelegate: self];
//Toolbar
UIBarButtonItem * logoutButton = [[[UIBarButtonItem alloc] initWithTitle:@"Log out" style:UIBarButtonItemStylePlain target:self action:@selector(logOut:)]autorelease];
NSMutableArray * arr = [NSMutableArray arrayWithObjects:logoutButton, nil];
[[self navigationController] setToolbarHidden: NO animated:YES];
[[self navigationController] setToolbarItems:arr animated:YES];
}
Run Code Online (Sandbox Code Playgroud)
Tom*_*Tom 47
替换此行:
[[self navigationController] setToolbarItems:arr animated:YES];
有了这个:
[self setToolbarItems:arr animated:YES];
通常,您应该toolbarItems在您推送的每个视图控制器上设置,而不是在UINavigationController本身上设置.
Oli*_*nge 14
我在Apple 的文档中发现了一个解释UIToolBar的小段落.在这一段中有一个非常小的句子陈述:"[..]显示时,此工具栏从活动视图控制器[..]的toolbarItems属性获取其当前项目集"但他们不首先解释该视图必须激活才能获得这些按钮.这意味着UIToolBar已准备好在viewDidAppear上检索它的按钮,而不是在viewDidLoad消息上检索它.
- (void)viewDidAppear:(BOOL)animated {
[[self tableView] reloadData];
[[self navigationController] setToolbarHidden: NO animated:YES];
UIBarButtonItem * logoutButton = [[[UIBarButtonItem alloc] initWithTitle:@"Log out" style:UIBarButtonItemStylePlain target:self action:@selector(logOut:)]autorelease];
NSMutableArray * arr = [NSMutableArray arrayWithObjects:logoutButton, nil];
[self setToolbarItems:arr animated:YES];
[super viewDidAppear:animated];
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12882 次 |
| 最近记录: |