Ligue para o UIViewController de "Subview"
-
20-08-2019 - |
Pergunta
Eu tenho um UiviewController que, quando carrega, carrega isso ..
MapViewController *mapController = [[MapViewController alloc] initWithNibName:@"MapView" bundle:nil];
self.mapViewController = mapController;
[self.view insertSubview:mapController.view atIndex:0];
[mapController release];
Eu também tenho um botão Visualizações de Switch que pode mudar para uma exibição de tabela ....
if (self.tableViewController ==nil)
{
TableViewController *tableController = [[TableViewController alloc] initWithNibName:@"TableView" bundle:nil];
self.tableViewController = tableController;
[tableController release];
//[self.view insertSubview:detailController atIndex:0];
}
if (self.mapViewController.view.superview == nil)
{
[tableViewController.view removeFromSuperview];
[self.view insertSubview:mapViewController.view atIndex:0];
}
else
{
[mapViewController.view removeFromSuperview];
[self.view insertSubview:tableViewController.view atIndex:0];
}
Estou tentando alterar a visualização para uma visualização detalhada com base na seleção de uma linha na visualização da tabela e não consigo descobrir como chamá -la. Todos os métodos que pareço falhar! Por favor ajude!
Solução
Adicione o protocolo UitableViewDelegate à sua classe de controlador.
@interface myTableViewController : UITableViewController <UITableViewDelegate>
Quando você cria o controlador VEIW da sua tabela, defina seu delegado para ser o seu controlador usando:
myTableViewController.delegate = self; // Assuming your setup code runs within the table view controller
No seu TableViewController, implemente o DidSelectrowatIndexpath:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
int rowSelected = [indexPath indexAtPosition:0]; // Assuming your UITableView has a single section.
Outras dicas
A aula que você deve procurar para manusear a seleção de linhas é o uabableViewDelegate, que tem o método:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath