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?


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


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


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.


0

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

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.