ios uitableview uisplitviewcontroller

ios - UITableViewCell Set selected inicialmente



uisplitviewcontroller (5)

No sé que estás esperando esta respuesta. Por defecto, si quiere seleccionar la primera fila en su tablaView sin selección manual, simplemente inicie el método didSelectRowAtIndexPath como este

- (void)viewDidAppear:(BOOL)animated { NSIndexPath *indexPath=[NSIndexPath indexPathForRow:0 inSection:0]; [myTableView selectRowAtIndexPath:indexPath animated:YES scrollPosition:UITableViewScrollPositionBottom]; }

Hola, tengo una situación en la que, en una aplicación para iPad, mi master controller tiene una lista y un controlador de detalles con sus detalles, un patrón UISplitViewController típico. Lo que quiero lograr es que mi primera fila se seleccione inicialmente y luego quiero dar la elección de selección al usuario. Estoy utilizando el setSelected y el método didSelectRowAtIndexPath de didSelectRowAtIndexPath eliminando una selección como esta.

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { [tableView deselectRowAtIndexPath:indexPath animated:NO]; NSIndexPath* path = [NSIndexPath indexPathForRow:0 inSection:0]; UITableViewCell* cell = [tableView cellForRowAtIndexPath:path]; [cell setSelected:NO]; }

para la celda inicial, pero mi celda no se selecciona después de eso, por favor, ayúdenme.


Para que la celda aparezca seleccionada, debe llamar a -setSelected:animated: desde dentro de -tableView:willDisplayCell:forRowAtIndexPath: así:

- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath { if (/* should be selected */) { [cell setSelected:YES animated:NO]; } }

Llamar -setSelected desde cualquier otro lugar no tiene ningún efecto.


También ayudará en el caso de la navegación POP

.h archivo,

NSIndexPath *defaultSelectedCell

.m Archivo

Pon este código en ViewDidLoad

defaultSelectedCell= [NSIndexPath indexPathForRow:0 inSection:0];

en viewDidAppear

[self.tableView selectRowAtIndexPath:defaultSelectedCell animated:NO scrollPosition:UITableViewScrollPositionNone];

Esto ayudará cuando POP, ponga este código en viewWillAppear

[self.catTableView selectRowAtIndexPath:defaultSelectedCell animated:NO scrollPosition:UITableViewScrollPositionNone];

en tableView didSelectRowAtIndexPath Method,

defaultSelectedCell = [NSIndexPath indexPathForRow:indexPath.row inSection:0];

Esto me ayuda perfectamente ya sea cargando por primera vez o Pop Navigation.


prueba esto

NSIndexPath* selectedCellIndexPath= [NSIndexPath indexPathForRow:0 inSection:0]; [self tableView:tableViewList didSelectRowAtIndexPath:selectedCellIndexPath]; [tableViewList selectRowAtIndexPath:selectedCellIndexPath animated:YES scrollPosition:UITableViewScrollPositionNone];

O

- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath { if (/* should be selected */) { [cell setSelected:YES animated:NO]; } }


Swift 3: seleccionando la celda inicialmente

import UIKit class MyViewController: UIViewController, UITableViewDelegate { @IBOutlet weak var tableView: UITableView! ... func tableView(_ tableView: UITableView, willDisplay cell: UITableViewCell, forRowAt indexPath: IndexPath) { if /* your code here */ == indexPath.row { tableView.selectRow(at: indexPath, animated: false, scrollPosition: UITableViewScrollPosition.none) } } ... }