MonoTouch - 刷新TableView

时间:2012-08-02 01:32:17

标签: ios xamarin.ios tableview

我正在使用MonoTouch为iOS编写新闻应用程序。数据来自OData网络服务。

我有一个叫做NewsFactory的单例类,它负责查询OData feed。现在在ViewDidLoad方法中,我正在检索新闻文章列表并将其绑定到表视图。

但是 - 我不确定每次启动应用程序时如何刷新它。我不太关心“拉动刷新”。我想确保的是,每次启动应用程序(从头开始或再次激活)时,都会调用Web服务以确保显示最新信息。

此外,我想介绍在启动应用程序时网络连接丢失的情况,并通知用户。使用关闭应用程序(暂停),让我们说网络连接返回 - 如果用户再次打开应用程序,我想确保我显示最新的新闻文章。

我正在以编程方式构建视图层次结构。我有导航控制器和带有5个标签的标签栏控制器。我的目标是iOS 5。

我尝试使用OnActivated和ViewWillAppear,他们并没有完全按照我的需要做。这是任何iOS应用程序的一个非常普遍的需求,所以必须有一个解决方案 - 我是新手,所以任何帮助都表示赞赏。

1 个答案:

答案 0 :(得分:0)

一般来说,如果你调用一个从一个源加载的方法(让我们说一个包含数据的文本文件),你必须考虑,然后你改变源(更改文本数据),但是调用加载类时的方法相同,然后在加载新类时会出现新数据。

例如:

- (void) loadView {
    NSString *testString = [NSString stringWithContentsOfFile:filePath];
    textView.text = testString;
}

此示例显示将文件中的文本设置为UITextView实例。如果你第一次加载它并且文件包含“Hi”的内容,那么textView会说你好。如果您更改它,然后调用相同的方法,它将在您第二次加载应用程序时显示更改的文本。

重点是,如果您更改数据,然后调用相同的方法,那么您将看到差异。除非你正在使用数据库。

如果您提供示例代码,我会给您一个更好的示例。

编辑:不确定您的自定义类是否附带此函数,但它包含在常规UITableView类中:

[tableView reloadData];

您可以在内部更改数组后调用它。