Swift 2でページベースのナビゲーションウォッチ アプリを作成しようとしています。私のアプリは以下です:
どちらのインターフェイスにも、InterfaceController と EconomyInterfaceControllerという名前の一意のコントローラーがあります。
各コントローラーで、コントローラーinit()関数の関数を使用して JSON データを読み取ります
func setFeed(url: String) {
let session = NSURLSession(configuration: NSURLSessionConfiguration.defaultSessionConfiguration())
let request = NSURLRequest(URL: NSURL(string: url)!)
let task: NSURLSessionDataTask = session.dataTaskWithRequest(request) { (data, response, error) -> Void in
if let data = data {
do {
let _data: AnyObject? = try NSJSONSerialization.JSONObjectWithData(data, options: .AllowFragments)
if let items = _data!["data"] as? NSArray{
self.tableOutlet.setNumberOfRows(items.count, withRowType: "row")
for (index, item) in items.enumerate() {
if let title = self.JSONString(item["title"]) {
if let spot = self.JSONString((item["spot"])) {
let news = newsItem(title: title, spot: spot)
let row = self.tableOutlet!.rowControllerAtIndex(index) as? RowController
row!.rowLabel!.setText(news.title) }
}
}
}
} catch {
}
}
}
task.resume()
}
私が知っているように、これはメインスレッドとアプリの起動時にすべてのリクエストが実行されるため、HTTPリクエストには最適な方法ではありません。これは私の主な質問ではありませんが、何か申し出があれば断ることはできません :)
私の主な質問は、willActivate()メソッドでsetFeed()メソッドを呼び出し、テーブルラベルを設定するかどうかです
row!.rowLabel!.setText(news.title)
私のアプリは動作しますが、ページが変更されるたびにコンテンツが何度も更新されるため、これは良い選択ではありません。
init()メソッドでsetFeed()メソッドを呼び出し、テーブル ラベルを設定すると
row!.rowLabel!.setText(news.title)
アプリの最初のページのみが表示され、他のページは表示されません。ここで何が問題なのですか?