将ToolBar添加到UITableView的正确方法是什么?

Fra*_*itt 25 iphone toolbar uitableview

我正在编写一个基于导航的iPhone应用程序,我希望UIToolBar停靠在我的屏幕底部,在工具栏和导航栏之间滚动UITableView.

我已经看过几个论坛,其中有人建议处理此视图的View Controller应该是标准的UIViewController而不是UITableViewController.除了所有标准的UIViewController覆盖之外,视图控制器还必须实现UITableView委托和数据源方法.除了前面提到的协议之外,我需要在这个视图控制器子类中重新创建什么(如果有的话)内置功能才能使它像UITableViewController一样工作?走这条路,我有什么损失吗?

或者将UITableViewController嵌套在标准的UIViewController中会更好吗?

Cor*_*oyd 49

从OS 3.0开始,导航控制器内置了一个工具栏.要使其显示:

[self.navigationController setToolbarHidden:NO];
Run Code Online (Sandbox Code Playgroud)

通过implmenting:

- (void)setToolbarItems:(NSArray *)toolbarItems animated:(BOOL)animated
Run Code Online (Sandbox Code Playgroud)

在视图控制器中,您可以配置工具栏的项目.

因此,您不必再担心工具栏在层次结构中的位置.

(更正错字)


Vic*_*Vic 9

科里弗洛伊德大多是正确的,除此之外

[self.navigationController setToolBarHidden:NO];
Run Code Online (Sandbox Code Playgroud)

应该

[self.navigationController setToolbarHidden:NO];
Run Code Online (Sandbox Code Playgroud)

也就是说,"setToolbarHidden"中的"b"必须是小写的.此外,实际上是iPhone OS Reference中列出的方法名称

- (void)setToolbarHidden:(BOOL)hidden animated:(BOOL)animated
Run Code Online (Sandbox Code Playgroud)

虽然似乎省略animated参数也有效.


Nik*_*esh 7

//Tool bar
[self.navigationController setToolbarHidden:NO];

UIBarButtonItem *buttonItem = [[ UIBarButtonItem alloc ] initWithTitle: @"Select All"
                                                style: UIBarButtonItemStyleBordered
                                               target: self
                                               action: @selector(selectAll:) ];
UIBarButtonItem *buttonNext = [[UIBarButtonItem alloc]initWithTitle:@"Next" style:UIBarButtonItemStyleBordered target:self action:@selector(goNext:)];
self.toolbarItems = [ NSArray arrayWithObjects: buttonItem, buttonNext, nil ];

[ buttonItem release ];
[buttonNext release];
Run Code Online (Sandbox Code Playgroud)