在UITableView w / Xamarin.iOS上显示JSON

时间:2014-02-09 17:13:46

标签: ios json uitableview xamarin.ios xamarin

我正在尝试使用Xamarin.iOS将我的Feed中的Instagram图片的标题显示在UITableView上。目前我正在尝试通过此功能加载数据:

// The Request
            var request = new OAuth2Request ("GET", new Uri (defaultURL + "users/self/feed"), null, instagram);
            request.GetResponseAsync ().ContinueWith (response => {
                if (response.IsFaulted) {
                    Console.WriteLine ("Error: " + response.Exception.InnerException.Message);
                } else {
                    using (var stream = new StreamReader (response.Result.GetResponseStream ())) {
                        var json = (JsonObject)JsonObject.Load (stream);
                        // Console.WriteLine (json);
                        var jsonVal = JsonValue.Parse (json);
                        var username = jsonVal["data"]["username"];
                        // Console.WriteLine (username);
                        for (var i = 0; i < 11; i++) {
                            tableData.Add (new Instagram_Picture () {
                                Name = json ["data"]["username"]
                            });
                        }               
                    }
                }
            });
table.Source = new TableSource (tableData.ToArray ());
        table.ReloadData ();

我正在使用Xamarin.Auth加载Instagram帐户,它加载完美,我可以在控制台中显示响应。以下是我设置UITableView的方法:

Instagram_Picture[] _category;
        public TableSource (Instagram_Picture[] category)
        {
            _category = category;
        }

        public override int RowsInSection (UITableView tableview, int section)
        {
            return _category.Length;
        }

        public override UITableViewCell GetCell (UITableView tableView, NSIndexPath indexPath)
        {
            UITableViewCell cell = tableView.DequeueReusableCell("TableCell");
            if (cell == null) {
                cell = new UITableViewCell (UITableViewCellStyle.Subtitle, "TableCell");
            }
            //show title
            cell.TextLabel.Text = _category [indexPath.Row].Name;
            //add accessory
            cell.Accessory = UITableViewCellAccessory.DetailDisclosureButton;
            return cell;
        }   

我创建了一个Instagram_Picture类,它在这两个类中加载。然而,所有这一切的真正问题在于UITableView上实际上没有显示任何内容。我们将非常感谢您的帮助,并提前致谢!

1 个答案:

答案 0 :(得分:0)

尝试为NumberOfSections添加覆盖:

public override int NumberOfSections(UITableView tableview)
{
  return 1;
}