2010-08-03 5 views
0

Je crée une classe:Comment ajouter UITableView à UIAlertView?

@interface myUITableViewController: UIViewController { NSArray * listData; } ...

et plus tard, je le fais:

UIAlertView *alert = [[UIAlertView alloc] initWithTitle:nil message:nil delegate:self cancelButtonTitle:nil otherButtonTitles:nil]; 

myUITableViewController *myUITable = [[myUITableViewController alloc] init]; 

[alert addSubview:myUITable.view]; 

[alert show]; 

Après l'exécution, le résultat est que la taille de myUITable.view est plus grand que l'alerte. Pourquoi? S'il vous plaît dites-moi si vous le savez. Merci!

Répondre

1

UIAlert n'est pas vraiment destiné à être utilisé comme ça. Vous devez créer votre propre UIView personnalisé et ajouter le contenu dont vous avez besoin (la table et les boutons). Puis gérer comment ça se voit et se cacher.

Même si vous réussissez à l'afficher correctement, il y a des chances pour qu'il se brise dans le futur. Dans l'une de mes applications, je montrais une alerte avec un UITextField. Je faisais de la place en ajoutant "\ n" au message. Dans les versions ultérieures iOS cela a cessé de fonctionner et il semblait vraiment horrible ...

+0

Merci beaucoup! – lqf

+1

Je ne suis pas d'accord. L'application Yelp utilise cette approche (pour une boîte de dialogue "Avez-vous voulu dire:") et elle est superbe. J'ai trouvé un code similaire sur http://codesofa.com/blog/archive/2009/07/15/look-uialertview-is-dating-uitableview.html. – tba