2013-05-07 4 views
0

J'ai donc un UITableView où je veux pousser à un contrôleur de détails lorsque la ligne est sélectionnée.pousser un contrôleur de vue de sélectionner une ligne dans une vue de table

Ma tentative a été de:

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

mais je reçois la plainte que BlogDetailViewController() prend un argument.

Mon BlogDetailViewController:

public partial class BlogDetailViewController : UIViewController 
{ 
    public string blogTitle; 

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

} 

Qu'est-ce Intptr handle et comment puis-je passer en? J'ai essayé d'ajouter un constructeur de zéro argument et pousser à cela, mais quand j'ai couru l'application il a poussé à un écran noir.

+0

Vous devriez être en mesure de créer un constructeur vide. Le contrôleur de détail a-t-il été créé avec Interface Builder? – Jason

+0

@jason Ya il a été ajouté dans mon storyboard via xcode – Deekor

Répondre

3

Si vous instancier d'un XIB, je crois que vous voulez utiliser

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

'Storyboard n'existe pas dans le contexte actuel' – Deekor

+0

désolé, voir mon exemple édité – Jason

+0

pour' name' dans 'InstantiateViewController' dois-je inclure un .cs ou quelque chose? Je mets 'BlogDetailViewController' et il me dit que le storyboard n'a pas de vue avec cet identifiant. – Deekor

0
UIApplication.SharedApplication.KeyWindow.RootViewController = view; 

ajouter cette ligne également dans la dernière

Questions connexes