RowSelected - NullReferenceException

左心房为你撑大大i 提交于 2019-12-10 22:01:52

问题


I am trying to make so when I press a row on my UITableView, it will send some data to another UIViewController and make a seque.

However when testing it out, it gives me:

System.NullReferenceException has been thrown Object reference not set to an instance of an object

The error seems to show here:

viewController.NavigationController.PushViewController (detail, true);

Here is my "RowSelected"

public override void RowSelected (UITableView tableView, NSIndexPath indexPath)
{
    Console.WriteLine ("Row: " + tableItems [indexPath.Row].Heading);

    //new UIAlertView("Row Selected", tableItems[indexPath.Row].Heading, null, "OK", null).Show();
    tableView.DeselectRow (indexPath, true);

    // Specially for Storyboard !!
    var detail = viewController.Storyboard.InstantiateViewController("detail") as HolsteinItemViewController;
    detail.Title = tableItems[indexPath.Row].Heading;
    detail.LoadUrl (tableItems[indexPath.Row].SubHeading);
    viewController.NavigationController.PushViewController (detail, true);
}

Exception caught:

System.NullReferenceException: Object reference not set to an instance of an object
  at Holstein.TableSource.RowSelected (MonoTouch.UIKit.UITableView tableView, MonoTouch.Foundation.NSIndexPath indexPath) [0x0008e] in /Users/Emil/Projects/Holstein/Holstein/Code/TableSource.cs:41
  at at (wrapper managed-to-native) MonoTouch.UIKit.UIApplication:UIApplicationMain (int,string[],intptr,intptr)
  at MonoTouch.UIKit.UIApplication.Main (System.String[] args, System.String principalClassName, System.String delegateClassName) [0x0004c] in /Developer/MonoTouch/Source/monotouch/src/UIKit/UIApplication.cs:38
  at Holstein.Application.Main (System.String[] args) [0x00008] in /Users/Emil/Projects/Holstein/Holstein/Main.cs:16

TableSource.cs line 46

viewController.NavigationController.PushViewController (detail, true);

Main.cs line 16

UIApplication.Main (args, null, "AppDelegate");

回答1:


Your viewController.NavigationController property is null. According to iOS UIViewController reference here

If the receiver or one of its ancestors is a child of a navigation controller, this property contains the owning navigation controller. This property is nil if the view controller is not embedded inside a navigation controller.

Apparently, that view controller is not part of a UINavigationController stack.



来源:https://stackoverflow.com/questions/19877884/rowselected-nullreferenceexception

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!