MonoDevelop(v2.8)とMonoTouch(v4.2.2)を使用して小さなiPhoneアプリケーションを開発しようとしています。MonoTouch UITableViewControllerとTableFooterView
私のホーム画面は、プレゼンテーションのためにUITableViewを使用するUITableViewControllerによって表されます。私はいくつかの他のコントロール(2つのラベルと2つのボタン)でUITableView.TableFooterView(UIViewオブジェクト)を埋めたいです。
これを行うには、SearchViewと呼ばれる「サブビュー」を作成しました。これはUIViewControllerで表され、プレゼンテーションには単純なUIViewを使用します。私はこのビューをtableviewのフッタービューとして割り当てます。
public partial class HomeScreen : UITableViewController
{
public override void ViewDidLoad()
{
base.ViewDidLoad();
SearchViewController searchViewController = new SearchViewController();
this.TableView.TableFooterView = searchViewController.View;
}
}
これは正しいですか?
あなたがビュー(UIView)を作成し、それをUIViewControllerで消費すると仮定するのは正しいですか?
あなたの質問には関係ない上記のコードで問題に遭遇することがあります。なぜなら 'searchViewController'はローカル変数とそれに対する参照がe 'ViewDidLoad'が返ってくるときに気をつけます(ビューはコントローラではなく参照されます)。これにより、** GC **がアプリケーションをクラッシュさせる可能性のある 'searchViewController'を収集することが可能になります。これを避ける最も簡単な方法は、*あなたの変数を*フィールド*にプロモートすることです(メソッドが戻ると参照が存在します)。 – poupou
ありがとうpoupuo。私はすでにこれを知っています。私は物事を理解できるように宣言をメソッドに入れました。私はまた、この問題が近い将来モノタッチチームによって解決されることを知っています。 私の質問は何ですか? – John