Visualização de tabela estática fora de UITableViewController

159

Após a nova atualização do Xcode, meu aplicativo não valida e mostra este erro:

visualizações de tabela estática são válidas apenas quando incorporadas nas instâncias UITableViewController

Alguma chance de resolver facilmente?

Francesco S
fonte
Depende do motivo pelo qual você está usando uma subclasse UIViewController em vez de um UITableViewController.
David Berry
3
Porque eu preciso de outros elementos dentro do ponto de vista que não pertence a um UITableViewController
Francesco S
1
Experimentando o mesmo problema aqui. Apenas atualizado (ou rebaixado, como parece, até agora) para o Xcode 5.1 e eu tenho o mesmo problema. Eu tenho um monte de células estáticas em uma subclasse UITableViewController dentro do meu UISplitViewController.
Stefan Arambasich 13/03/14
Começou a acontecer comigo também após a atualização. Eu tenho alguns controladores de exibição construídos com células estáticas, não é o ideal, mas estava funcionando bem antes.
Jdmunro 14/03/2014
Você não precisa usar UITableViewController. Você recebe esse erro se tiver células de exibição de tabela estática no UiTableView, então acho que uma solução fácil é se você precisar das células, não a deixe estática. Basta adicionar delegado tableview e fonte de dados e métodos UITableViewDelegate fictícios
EarlySun

Respostas:

341

A única maneira de obter um UITableView estático junto com outros controles na mesma tela é usar uma Visualização de Contêiner. Siga este caminho, ele funciona perfeitamente:

  1. Arraste um ViewController para o seu storyboard.
  2. Arraste um TableViewController para o seu storyboard.
  3. Em seguida, arraste uma visualização Container para o seu ViewController e dimensione-a sobre o tamanho desejado (menor que a visualização) -> quando você arrasta a visualização Container, ela cria uma segue e outra visualização. Remova esse segue e visualize.
  4. Finalmente, clique com a tecla Ctrl pressionada no seu contêiner e arraste para o seu novo TableViewContoller. Selecione Incorporar.
  5. Modele seu TableView da maneira que desejar -> incluindo células estáticas.

Boa sorte.

Esta resposta já foi encontrada e foi fornecida aqui: G.Huebner -> http://web.archive.org/web/20140928102504/http://iphonedevsdk.com/forum/iphone-sdk-development/111800-static-table- view-cell-only-work-in-a-uitableviewcontroller.html

LukeSideWalker
fonte
Onde tomar saída ou ação? Em UIViewControllerou devo ter que tomar UITableViewController.
Bhavin Ramani
@Bhavin Ramani: Como é um UITableViewController no contêiner, sugiro levar exatamente essa classe / subclasse para armazenar seus IBOutlets.
LukeSideWalker
2
Eu acho que toda a idéia de "células estáticas" é implementada de uma maneira que depende de algumas funcionalidades internas do UITableViewController.
Nicolas Miari 20/01
2
Obrigado por isso. Pode confirmar que funciona no Xcode 8.3.1.
Atharva Vaidya
Simplesmente fantástico! Eu estava procurando essa solução por um tempo agora.
Jason Foglia
8

Um UITableView estático deve estar em um UITableViewController. Portanto, você colocará a tabela em UITableViewController e a adicionará como childView ao MainViewController.

Você pode consultar https://iphoneidoit.blogspot.in/2013/10/static-uitableview-in-uiviewcontroller.html

Sahana Kini
fonte
1
Havia muitas maneiras de contornar isso antes (como reter a célula), mas agora é um erro independentemente. Eu acho que a pergunta está sugerindo se existe uma maneira de suprimir o erro.
Matthew knippen
Sim, foi. Infelizmente, acabei resolvendo o problema usando um tableView non-static
Francesco S
1
Caramba. A quantidade de retrabalho que seria necessário para converter para não estática devido a todos os IBOutlets no meu arquivo do controlador de exibição é muito grande e, para a IMO, é inaceitável que uma atualização o interrompa sem aviso ou observação no log de alterações ( ergo Presumo que ainda seja perfeitamente válido no papel ter UITableViewControllercélulas estáticas dentro de A. UISplitViewContollerEntrei em contato com o suporte da Apple para desenvolvedores e só recebi uma resposta de e-mail genericamente não tão útil que me ligou aos fóruns. Suponho que vou tentar lá e ver se alguém está tendo os mesmos problemas pós-atualização.
Stefan Arambasich
4

Acho que o que você está fazendo é primeiro arrastar o ViewController no storyboard e depois arrastar o tableView no ViewController. Dessa forma, você não pode usar as células da tabela estática. Em vez disso, o que você deveria ter feito é arrastar o TableViewController no storyboard principal, em vez de um ViewController, e selecionar as células estáticas. Dessa maneira, você poderá trabalhar em células estáticas e usar qualquer elemento em células estáticas.

hellosheikh
fonte
0

Bem, se você realmente estiver usando um tableView estático, considere copiar / colar tudo para um ScrollView ou StackView.

River2202
fonte