我想在我的MonoTouch C#應用程序中創建一個屏幕,讓用戶搜索餐館。用戶可以搜索附近,任何地點或最近訪問過的餐館。這三個選項是作爲分段控制呈現的。當用戶單擊分段控件中的項目時,我切換可見視圖。換句話說,每個選項代表自己的觀點。MonoTouch使用視圖和控制器
我希望每個視圖都有自己的表格視圖控制器,這樣當用戶點擊餐廳時,會向用戶提供更多細節。從我所知道的,我需要實現這裏顯示的方法:http://www.alexyork.net/blog/post/UINavigationController-with-MonoTouch-Building-a-simple-RSS-reader-Part-1.aspx
我的問題是,我似乎無法找出一種方法來添加到視圖的控制器。在我的場景中,我相信我需要將UITableViewController添加到每個UIView(每個分段控件項目都有一個)。這可能嗎?如果是這樣,怎麼樣?如果不可能,我該如何去完成我的目標?這看起來很簡單,但我似乎有點失落,誤解了一些東西。這裏是我打電話ViewDidLoad事件時的方法:
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
}
謝謝你的幫助!
您好,我只是說我的代碼的問題。感謝您的答覆。我仍然有問題。你能否考慮檢查我的代碼並告訴我我做錯了什麼?我完全被這個感到沮喪。謝謝! – 2012-01-08 16:10:24
在更復雜的情況下,您無法將所需行爲減少爲幾行代碼,請創建一個小型自包含示例應用程序以供審閱。 – Anuj 2012-01-08 20:06:13