2012-06-20 133 views
1

如何加載a。 XIB通過點擊表格視圖的行? 下面這個例子是一個類的一部分,因爲我fario警告這個類的加載?加載。 XIB in a class

public override void RowSelected (UITableView tableView, NSIndexPath indexPath) 
{ 
    tableView.DeselectRow (indexPath, true); 

    //this.PresentModalViewController(home,true); 
} 
+0

爲什麼在地球上你用什麼看起來像普通的C方法?在UITableViewController中使用objective-c方法。 –

+0

他的帖子被標記爲MonoTouch - 這是C#,而不是Obj-C – Jason

+0

對不起,我不知道你可以編程爲iPhone而不使用Obj-C –

回答

0

這裏沒有很多細節在你的問題和評論...

如果overrideRowSelected方法,那麼你很可能從UITableViewSource權繼承了新的類型?如果是這樣,那麼你應該讓它的構造函數保留對UITableViewController的引用,並在稍後使用此引用來呼叫PresentModalViewController

E.g.

public class MyTableViewSource : UITableViewSource { 

    UITableViewController ctrl; 

    public MyTableViewSource (UITableViewController c) 
    { 
     ctrl = c; 
    } 

    public override void RowSelected (UITableView tableView, NSIndexPath indexPath) 
    { 
     tableView.DeselectRow (indexPath, true); 
     var home = new UIViewController ("YouNibName", null); // default bundle 
     ctrl.PresentModalViewController (home, true); 
    } 
} 

注:我以前UIViewController但你很可能已經爲你的NIB定義的類型。

+0

錯誤:MonoTouch.UIKit.UITableView'不包含'PresentModalViewController'的定義並且沒有擴展方法 – Lima

+0

**我繼承了UITableViewSource。** – Lima

+0

相同的模式適用於'UITableViewSource',您應該通過'UITableViewController' (而不是視圖本身)。我會更新代碼示例... – poupou