0
我使用mono開發3.1.1來構建IOS應用程序。我從我沒有正確聲明的導航控制器引用中收到對象引用錯誤(請參閱>>>)。Monotouch中的UITableView導航
我的問題是聲明和實例化控制器的最佳方式是什麼,以便能夠從選定表格單元格的位置顯示另一個視圖。
有人可以幫助我正確的語法嗎?
public class TableHelper : UITableViewSource {
protected string[] tableItems;
protected string cellIdentifier = "TableCell";
public TableHelper (string[] items)
{
tableItems = items;
}
public override int RowsInSection (UITableView tableview, int section)
{
return tableItems.Length;
}
public override void RowSelected (UITableView tableView, NSIndexPath indexPath)
{
switch (tableItems[indexPath.Row])
{
case "one":
var DetailViewController = new SupportContactsDetailsScreen();
UINavigationController controller = new UINavigationController();
// Pass the selected object to the new view controller.
>>>controller.NavigationController.PushViewController(DetailViewController, true);
break;
default:
//Console.WriteLine("Default case");
break;
}
}
public override UITableViewCell GetCell (UITableView tableView, MonoTouch.Foundation.NSIndexPath indexPath)
{
UITableViewCell cell = tableView.DequeueReusableCell (cellIdentifier);
if (cell == null)
cell = new UITableViewCell (UITableViewCellStyle.Default, cellIdentifier);
cell.TextLabel.Text = tableItems[indexPath.Row];
return cell;
}
}
嗨皮爾斯,感謝您的信息。我從xamarin文檔站點獲得了上述示例。我正在努力的部分是當我打電話來初始化班級時,我如何讓控制器通過?像table.Source = new TableHelper(tableItems,<引用到控制器here>);任何幫助是極大的讚賞。 – user686483 2013-02-09 22:54:06
table.Source = new TableHelper(tableItems,this.NavigationController);請注意,一種方法是在您的AppDelegate(或創建此類的任何位置)中使用類似的方法創建主UIViewController類:var TableViewController = new UINavigationController(new NameOfMasterViewController());這將確保調用類有一個UINavigationController。 – pierceboggan 2013-02-09 23:38:29
嗨皮爾斯,對於遲到的回覆感到抱歉。我設法解決這個問題。我做了你的建議,並創建了一個主或rootview控制器。我還添加了一個單獨的數據源和委託。我現在可以將我的導航控制器傳遞到任何位置並調用新的視圖。謝謝你的幫助。 – user686483 2013-02-23 01:18:50