2012-02-24 17 views
2
へのUIViewControllerを変更

私は最近、MonoTouchでを使用してiOSの開発を開始し、アプリケーションの起動時に次のエラーを取得しています:iOSが - のUITableViewController

[のUITableViewController loadViewメソッド]ロード 「SectionTableViewControler」ペン先が、didnの「トンはのUITableView

を取得し、私はUITableViewController代わりのUIViewControllerから継承する 『ビューコントローラ』に変更した後、これが始まりました。修正するために、私はXcode 4に入り、「フォーム」にUITableViewをドロップし、hファイルをドラッグ/ドロップすることでUITableViewのコンセントも作成しました。

どのようにUIViewControllerUITableViewControllerに変更しますか?

public class MyViewController : UITableViewController //UIViewController 
{ 
} 

...またはあなたは、単に「クラス」タイプを変更した場合、これは不十分である:

答えて

1

あなたは単にIBは、C#クラスは、例えばから継承生成するものに変化しています。 UITableViewControllerはloadViewメソッドでTableViewプロパティを設定する必要があるため、XIBは読み込み時にエラーをスローします。最初に古いオブジェクトを削除し、新しいUITableViewControllerをドラッグアンドドロップします。また、ここでのXcode 4にInterface Builderを使用してチュートリアルをチェックアウトすることができます:

http://docs.xamarin.com/ios/tutorials/transitioning_from_xcode_3_to_xcode_4

私は実際にTableViewsで順化取得するMonoTouch.DialogとDialogViewControllerを使用することをお勧めします。これは、概念を学ぶための素晴らしい方法だし、バックコアパターンにサークル:

https://github.com/migueldeicaza/MonoTouch.Dialog

0

は、私が(ほぼ一年後に)同じ問題に遭遇しました。実際にUITableViewControllerが必要か、UITableViewを処理するUIViewControllerがうまくいきましたか?今後この問題がある可能性があります誰が他のために

...

代わりにXIBを一掃し、空のUITableViewControllerで再び始まるのは、私は単にのUIViewControllerが正しくのUITableViewとそのデータソースを扱うことができることを確認しました代議員。それは他の誰を助ける場合、私はのUIViewControllerから継承(それが実際のUITableViewを持っているのUITableViewControllerである必要はありません)

public partial class MyCustomViewController : UIViewController 
  • 宣言...

    1. それを綴りますよアウトレットとのUITableViewのプロパティをオーバーライドviewDidLoadメソッドでデリゲートとデータソースを指定し

      private UITableView _tableView; 
      [Outlet("tableView")] 
      public UITableView TableView { 
          get { return _tableView; } 
          set { _tableView = value; } 
      } 
      
    2. 属性

      public override void ViewDidLoad() 
      { 
          TableView.DataSource = new MyCustomDataSource(); 
          TableView.Delegate = new MyCustomDelegate(this); 
      
          base.ViewDidLoad(); 
      
          // Perform any additional setup after loading the view... 
      } 
      
    3. デリゲートクラスとデータソースクラスがそれぞれUITableViewDataSourceとUITableViewDelegateの適切なメソッドを継承して実装していることを確認してください。ユーティリティパネルの接続インスペクタで

      // delegate class 
      public class MyCustomDelegate : UITableViewDelegate 
      { 
          private MyCustomViewController _controller; 
      
          public MyCustomDelegate (MyCustomViewController controller) 
          { 
           _controller = controller; 
          } 
      
          // overridden or additional methods 
      } 
      
      // data source class 
      public class MyCustomDataSource : UITableViewDataSource 
      {  
          public MyCustomDataSource() 
          { 
          } 
      
          // overridden or additional methods 
      } 
      
    4. MyCustomViewControllerのtableViewFile's Ownerが正しくのdataSourceとしてリンクされているとして、あなたのXIBに含まれてきたのUITableViewが適切にリンクされていることを確認してくださいUITableViewのをデリゲートしてください。

    一般的なUIViewControllerを実装すると、エラーを完全に回避できました。この遅い答えが他の誰かを助けることを望みます。

  • 関連する問題