J'essaie de créer un écran dans mon application MonoTouch C# qui permet aux utilisateurs de rechercher des restaurants. L'utilisateur peut rechercher des restaurants à proximité, n'importe où, ou récemment visités. Ces trois options sont présentées comme un contrôle segmenté. Lorsqu'un utilisateur clique sur un élément du contrôle segmenté, je bascule les vues visibles. En d'autres termes, chaque option représente sa propre vue.MonoTouch Utilisation des vues et des contrôleurs
Je souhaite que chaque vue possède son propre contrôleur de vue de table de sorte que lorsqu'un utilisateur clique sur un restaurant, plus de détails sont donnés à l'utilisateur. De ce que je peux dire, je dois mettre en œuvre l'approche montrée ici: http://www.alexyork.net/blog/post/UINavigationController-with-MonoTouch-Building-a-simple-RSS-reader-Part-1.aspx
Mon problème est, je n'arrive pas à trouver un moyen d'ajouter un contrôleur à une vue. Dans mon scénario, je crois que j'ai besoin d'ajouter un UITableViewController à chaque UIView (un pour chaque élément de contrôle segmenté). Est-ce possible? Si c'est le cas, comment? Si ce n'est pas possible, comment dois-je faire pour atteindre mon objectif? Cela semble assez simple, mais j'ai l'impression d'être loin et de mal comprendre quelque chose. Voici la méthode que j'appelle lorsque l'événement ViewDidLoad est atteint:
private void LoadViews()
{
int subViewHeight = 320;
#region Nearby View
RectangleF nearbyRectangle = new RectangleF(0, 0, UIScreen.MainScreen.Bounds.Width, subViewHeight);
this.nearbyView = new UIView(nearbyRectangle);
this.nearbyView.BackgroundColor = UIColor.Blue;
this.nearbyTableViewController = new NearbyTableViewController(IntPtr.Zero);
this.NavigationController.PushViewController(nearbyTableViewController, false);
this.View.Add(nearbyView);
#endregion Nearby View
#region Elsewhere View
RectangleF elsewhereRectangle = new RectangleF(0, 0, UIScreen.MainScreen.Bounds.Width, subViewHeight);
this.elsewhereView = new UIView(elsewhereRectangle);
this.elsewhereView.Hidden = true;
this.elsewhereView.BackgroundColor = UIColor.Green;
// Add the search text field
UITextField searchElsewhereTextField = new UITextField();
searchElsewhereTextField.BorderStyle = UITextBorderStyle.RoundedRect;
searchElsewhereTextField.Frame = new RectangleF(20, 13, 200, 31);
searchElsewhereTextField.Placeholder = "query";
this.elsewhereView.AddSubview(searchElsewhereTextField);
// Add the search button
UIButton searchButton = UIButton.FromType(UIButtonType.RoundedRect);
searchButton.Frame = new RectangleF((UIScreen.MainScreen.Bounds.Width - 90), 13, 70, 31);
searchButton.SetTitle("Search", UIControlState.Normal);
this.elsewhereView.AddSubview(searchButton);
// Add the results table
this.elsewhereTableView = new UITableView(new RectangleF(0, 52,
UIScreen.MainScreen.Bounds.Width, subViewHeight-70), UITableViewStyle.Plain);
this.elsewhereTableView.Source = new NearbyListDataSource(this);
this.elsewhereView.AddSubview(elsewhereTableView);
this.View.Add(elsewhereView);
#endregion Elsewhere View
#region Recent View
RectangleF recentRectangle = new RectangleF(0, 0, UIScreen.MainScreen.Bounds.Width, subViewHeight);
this.recentView = new UIView(recentRectangle);
this.recentView.Hidden = true;
this.recentTableView = new UITableView(new RectangleF(0, 0, UIScreen.MainScreen.Bounds.Width, subViewHeight), UITableViewStyle.Plain);
this.recentTableView.Source = new NearbyListDataSource(this);
this.recentView.AddSubview(recentTableView);
this.View.Add(recentView);
#endregion Recent View
}
Nous vous remercions de votre aide!
Bonjour, Je viens d'ajouter mon code à la question. Merci pour votre réponse. J'ai toujours des problèmes. Pourriez-vous envisager de revoir mon code et de me dire ce que je fais de mal? Je suis complètement frustré par cela. Je vous remercie! –
Dans les cas plus complexes où vous ne pouvez pas réduire le comportement souhaité à quelques lignes de code, veuillez créer un petit exemple d'application autonome pour révision. – Anuj