Ir para conteúdo
Visualizar no app

Uma forma melhor de navegar. Saiba mais.

MM Fórum

Um app em tela cheia na sua Tela de Início com notificações push, avisos e mais.

Para instalar este app no iOS/iPadOS
  1. Toque no ícone de Compartilhamento no Safari
  2. Role o menu e toque em Adicionar à Tela de Início.
  3. Toque em Adicionar no canto superior direito.
Para instalar este app no Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Problema com TableView

Featured Replies

Postado

estou fazendo um APP e me deparei com um problema (problema pq sou novo em IOS);

bem tenho que colocar em uma tableView cada um destes expositores da lista http://www.sindmovei...positores-2012/

deixarei somente o nome e talves uma imagem também, até ai tudo certo, é só criar um array tanto pro nome quanto pra imagem,

o problema é que em cada cell, tem que abrir uma nova View contendo as informações contidas na lista do link que postei acima.

pensei em criar essa nova View com os objetos (Labels, buttons, imageView.... em fim o que for preciso), só que nao tenho ideia de como popular eles corretamente a cada chamada da tabela, eu poderia fazer um teste pelo "objectAtIndex:" do array e assim chamar a nova View populando com as informaçoes corretas. Mas como a lista é imença seriam varios "IF" que teria que fazer, e com certeza tem alguma forma mais simples e pratica.

também tenho um form que envia email atravez de um PHP, pensei em colocalo também, porém teria que fazer o email do destinatario mudar de acordo com a cell que for clicada na tableView.

É uma duvida meio comprida, mas até hoje só usei tableView para coisas simples, nunca para algo complexo (pra mim) como desta vez.

Obrigado!

Editado por sanchessd

  • Respostas 8
  • Visualizações 988
  • Criado
  • Última resposta

Top Postadores Neste Tópico

Postado

Então voce quer tirar informaçao da internet e colocart na tableview?

Editado por Raphael Rivas

Postado

Já tentou usar algo do tipo NSString * path = @"http://www.sindmoveis.com.br/movelsul/expositores/expositores-2012/"

Ou da forma mais simples criar um webview e tirar todo o codigo da pagina e aí usar do jeito que te ajude:

NSString *Conteudo = [webView stringByEvaluatingJavaScriptFromString:@"document.documentElement.textContent"];

Postado
  • Autor

na verdade nao quero pegar a informação da net para jogar na tableView,

vou criar um array com todos os expositores que tem no link, (manualmente),

cada item da tabela seria um dos expositores, ex:

ABDALLA

ALMOFADAS D/SA

ANJOS DO BRASIL

ARKI DESIGN

....

Cada um desses nomes seria um uma cell da tabela, e ao clicar na celula, abriria uma View, como qualquer outra tabela abre. E nesta View teria o cartao de visita da empresa, com o telefone, email, site, etc...

Para cadastrar nao tem jeito,vou ter que fazer tudo manual, o meu problema é de como identificar por exemplo quando a cell "

ABDALLA" for selecionada, tenho que mostrar os dados desta empresa corretamente (telefone, email, site, etc...), como identificcar isto ?

basicamente terei que criar a tabela, popular a tabela com as empresas fazendo um Array com o nome de todas, terei que criar uma outra Classe e nela fazer a View que irá mostrar o detalhes. Só quero saber como passar os dados corretos para a View dos detalhes.

Editado por sanchessd

Postado

Faça um array de nsdictionary ... cada indice do array vai ter um dicionario com toda a info de determinada empresa. Semelhante a um plist ou um arquivo json.

Ao selecionar a linha vc simplesmente passa o dictionary daquela linha para a view detalhada e exibe.

Editado por Artur Felipe

Postado
  • Autor

eu segui este tutorial e consegui o que precisava

http://www.iphonedevcentral.com/hello-uitableview/

agora na DetailViewController é exibido em cada celula a respectiva informação, implementei no metodo didSelectRowAtIndexPath da DetailViewController um form que envia email,


- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {

[modalContato setParamDestinatario:pathEmail];
[self.navigationController pushViewController:modalContato animated:YES];

}
[/CODE]

só que nao quero abrir em todos os itens desta tabela, por ex: se eu clicar em telefone vai abrir o form que envia email, (nao quero isso, quero que abra somente no campo onde tem o email)

tem algum metodo de identificar qual cell está celecionada ?

tenho 4 cells somente, 2 delas nao farao nenhuma açao quando forem selecionadas, e as outras 2 uma abrirá o form do email e outra abrirá o site,

meu problema não é em criar as açoes que serao executadas, meu problema é somente de identificar cada cell

Postado

Cheque o indexpath desse metodo que ele lhe diz o indice linha coluna selecionado.

Postado
  • Autor

fiz o seguinte:


NSString *selecionada = [NSString stringWithFormat:@"%@", indexPath];
NSLog(@"%@",selecionada);
[/CODE]

me retornou:

2012-02-23 10:28:26.609 MovelSulBrasil[615:207] <NSIndexPath 0x6a21260> 2 indexes [3, 0]

mas nao posso simplesmente fazer

[CODE]
if (indexPath == 3, 0 ) {

}
[/CODE]

é uma pergunta meio tosca, sou novo em IOS e obj-c por isso tenho certas dificuldades.

Obrigado

Postado
  • Autor

resolvi minha pergunta tosca, era só criar um NSIndexPath e comparar .


- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
[tableView deselectRowAtIndexPath:indexPath animated:NO];
NSIndexPath *email = [NSIndexPath indexPathForRow:0 inSection:3];
NSIndexPath *site = [NSIndexPath indexPathForRow:0 inSection:2];

if ([indexPath isEqual:email]) {
NSLog(@"%@",pathEmail);
[modalContato setParamDestinatario:pathEmail];
[self.navigationController pushViewController:modalContato animated:YES];
}
else if([indexPath isEqual:site]){
NSLog(@"%@",pathSite);
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:pathSite]];
}
else{
NSLog(@"Não há nenhum metodo nesta linha");
}
}
[/CODE]

voila.

Participe do debate

Você pode postar agora e se registrar depois. Se você tem uma conta, entre agora para postar com ela.

Visitante
Responder este tópico…

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Conta

Navegação

Buscar

Buscar

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.