uitableviewcell source number example data iphone uitableview toolbar

iphone - source - uitableviewcell swift 3



¿Cuál es la forma correcta de agregar una barra de herramientas a UITableView? (5)

Todo lo que necesita hacer es implementar los métodos UITableViewDelegate y UITableViewDatasource necesarios para el nivel de funcionalidad de vista de tabla que necesita. Estos métodos pueden estar en cualquier clase (s) aunque dichas clases deben ajustarse a los protocolos relevantes. El delegado y la fuente de datos se deben configurar en la instancia de UITableView, ya sea programáticamente o con el Interface Builder. De acuerdo con los documentos , perderá algunas funcionalidades; consulte la sección de descripción general .

Personalmente encuentro que muchos desarrolladores parecen estar obsesionados con proporcionar toda esta funcionalidad en una única clase de controlador de vista monolítica, y que debido a que tienen una vista de tabla en su vista, entonces debe usarse una subclase de UITableViewController. Sin embargo, me gusta considerar el Principio de Responsabilidad Individual y con frecuencia romper el origen de datos y delegar en clases separadas cuando la complejidad es otra cosa que simple. El código tampoco está vinculado a una implementación específica de UIViewController.

En situaciones en las que tengo clases datasource / delegate separadas, a menudo las construyo y las conecto a la vista de tabla usando Interface Builder y no en código. Este enfoque (al menos para mí) está en el espíritu de Dependency Injection y ahorra la escritura de un código de placa de caldera, y proporciona cierto nivel de desacoplamiento .

Estas opciones, por supuesto, están influenciadas por la complejidad de la funcionalidad que está tratando de lograr; para implementaciones simples, podría encontrarme usando UITableViewController.

Estoy escribiendo una aplicación de iPhone basada en navegación, y me gustaría tener una UIToolBar acoplada en la parte inferior de la pantalla, con un desplazamiento de UITableView entre la barra de herramientas y la barra de navegación.

He visto un par de foros donde se ha sugerido que el controlador de visualización que maneja esta vista debería ser un UIViewController estándar en lugar de un UITableViewController. El controlador de vista tendría que implementar el delegado UITableView y los métodos de fuente de datos, además de todas las anulaciones estándar de UIViewController. ¿Qué funcionalidad incorporada (si corresponde) debo recrear en esta subclase del controlador de vista distinta de los protocolos antes mencionados para que actúe como un UITableViewController? ¿Hay algo que estoy perdiendo yendo por esta ruta?

¿O sería mejor anidar un UITableViewController dentro de un UIViewController estándar?


Corey Floyd es mayormente correcto, excepto que

[self.navigationController setToolBarHidden:NO];

debiera ser

[self.navigationController setToolbarHidden:NO];

Es decir, la "b" en "setToolbarHidden" debe estar en minúscula. Además, el nombre del método enumerado en la referencia del sistema operativo iPhone es en realidad

- (void)setToolbarHidden:(BOOL)hidden animated:(BOOL)animated

aunque parece que omitir el parámetro animated también funciona.


A partir de OS 3.0, el controlador de navegación tiene una barra de herramientas integrada. Para que aparezca:

[self.navigationController setToolbarHidden:NO];

Al implementar:

- (void)setToolbarItems:(NSArray *)toolbarItems animated:(BOOL)animated

en su controlador de vista, puede configurar los elementos de la barra de herramientas.

Por lo tanto, ya no tendrá que preocuparse de dónde se encuentra la barra de herramientas en su jerarquía.

(error ortográfico corregido)


Pruebe esto:

self.navigationController.toolbarHidden = NO;

Espero que te ayude


//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];