2013-05-07 108 views
0

所以我有一个UITableView我想推到细节控制器,当该行被选中。推视图控制器从表视图中选择一行

我的尝试是:

public override void RowSelected (UITableView tableView, NSIndexPath indexPath) 
    { 
     var controller = new BlogDetailViewController(); 
     navController.PushViewController(controller, true); 
     tableView.DeselectRow (indexPath, true); 
    } 

但我得到的抱怨BlogDetailViewController()需要一个参数。

BlogDetailViewController

public partial class BlogDetailViewController : UIViewController 
{ 
    public string blogTitle; 

    public BlogDetailViewController (IntPtr handle) : base (handle) 
    { 
    } 

} 

什么是Intptr handle和我如何通过它?我尝试添加一个零参数构造函数并推入,但是当我运行该应用程序时,它会推到黑屏。

+0

你应该能够创建一个空的构造。使用Interface Builder创建了详细控制器吗? – Jason 2013-05-07 21:44:32

+0

@jason雅它通过xcode添加到我的故事板 – Deekor 2013-05-07 21:45:11

回答

3

如果你从一个XIB实例吧,我相信你想使用

UIStoryboard board = UIStoryboard.FromName ("name", null); 
UIViewController ctrl = (UIViewController)board.InstantiateViewController ("name"); 
+0

'故事板在当前上下文中不存在' – Deekor 2013-05-08 00:38:37

+0

对不起,请参阅我的编辑示例 – Jason 2013-05-08 00:48:50

+0

对于'InstantiateViewController'中的'name'是否需要包含.cs或其他内容?我把'BlogDetailViewController'和它告诉我故事板没有该标识符的视图。 – Deekor 2013-05-08 00:58:35

0
UIApplication.SharedApplication.KeyWindow.RootViewController = view; 

也加入这一行中最后