10
votes

Comment configurer une vision utile statique comme une sous-vision d'UIView?

Quand je travaille avec un TableViewController code> Je suis en mesure de configurer tout mon contenu storyboards. Depuis que je l'utilise Cellules statiques em> au lieu de Propriétés dynamiques em> pour moi de table, je trouve cette méthode beaucoup plus pratique et plus facile à mettre en œuvre. J'accroche la nouvelle classe UITableView et supprimer simplement toutes les méthodes de délégués. Fonctionne comme un charme que tout le contenu / boutons sont en cours d'installation en storyboards.

Je suis en train d'accomplir le même résultat, sauf que cette fois, je dois travailler dans un ViewController code> et ajoutez TableView code> comme sous-vue. Une fois que je brancher la bonne classe, ajoutez ma connexion de sortie et configurer les délégués suivants: p>

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    return 3;
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *CellIdentifier = @"MainCell";
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];

    return cell;
}


0 commentaires

3 Réponses :


1
votes

Vous devez toujours faire quelques choses:
Ajouter à votre déclaration @interface.
Ensuite, vous pouvez les définir également dans l'interface Builder.
Implémente CellfornatDexPath et appelez le DEQUUEREUSABLECellwithIdentifier pour renvoyer la cellule.

Désolé, j'avais tort. La vérité est que vous ne pouvez pas utiliser de cellules statiques sans un utablevoller . Désolé.

Une solution peut être que vous créez deux contrôleurs et d'ajouter simplement la vue du contrôleur de la vue Tableau sur votre autre contrôleur d'affichage.


5 commentaires

À moins que quelque chose ait changé dans iOS 7, vous n'êtes pas censé mettre en œuvre les méthodes de source de données lors de l'utilisation de cellules statiques.


@rdelmar qui est parfaitement correct. Je ne l'ai jamais fait, et cela fonctionne très bien lorsque vous travaillez avec une tableViewController, ce qui ne fonctionne pas pour moi lorsque j'essaie d'ajouter une vue de table à mon contrôleur d'affichage.


@Mundi, bien que j'ai déjà ajouté à mon @interface, je ne pense pas que ce soit le problème, voir le commentaire ci-dessus de Rdelmar, qui confirme ma suspicion.


@Mundi, en réponse à votre réponse mise à jour, comment puis-je " Ajoutez la vue du contrôleur de vue Tableau à votre autre contrôleur d'affichage. "?


[Self.View AddSubview: TableViewController.View];



1
votes

Autant que je sache, vous ne pouvez pas le faire directement. Au moins dans iOS 6, vous deviez utiliser une entreprise UitailView lors de l'utilisation de cellules statiques. Un moyen d'utiliser une vue de table statique à l'intérieur d'un UIViewController serait d'ajouter une vue de conteneur dans IB et de rendre le contrôleur intégré à un contrôleur de vue de la table (supprimez l'UIViewController que vous obtenez automatiquement, faites glisser dans une entreprise utativeviewonController et connectez-le avec l'intégration Segue). Vous pouvez obtenir une référence à ce contrôleur d'affichage de la table à partir de l'UIViewController en implémentant PREPAREPRYPORSEGUE: expéditeur :, et à l'aide de la propriété de destinationViewController (qui indiquera le contrôleur de vue de la table).


0 commentaires

29
votes

Voici ce que vous pouvez faire. Dans votre storyboard, créez un contrôleur de visualisation parent contenant également toutes vos vues non-TableView, créez un utablevoller. Dans votre contrôleur de vue parent, Créez une vue sur le conteneur, supprimez le contrôleur d'affichage qu'elle ajoute automatiquement, puis cliquez avec le bouton droit de la souris et faites glisser de la vue du conteneur dans votre utilviewController pour créer une SEGUE INCLÉDÉ. Votre résultat final devrait ressembler à quelque chose comme ceci:

Entrez la description de l'image ici


5 commentaires

J'ai quelque chose comme cette configuration, mais comment puis-je communiquer entre eux? la vue parent et enfant.


@Steven dans le contrôleur de vue parent, vous pouvez ajouter une propriété du contrôleur de la vue enfant et la définir dans préparerforSegue.


Oui, après le commentaire. Je pensais que je fixais des choses dans le préparer . Merci tho.


Fonctionne comme un charme. Merci beaucoup.


@ n00b content de pouvoir aider :)