MonoTouch无法从AccessoryButtonTapped打开新窗口

时间:2011-11-29 09:53:04

标签: c# xamarin.ios monodevelop

如何从BasisViewController中的AccessoryButtonTapped按钮打开一个新窗口。现在我有这个打开,但问题是我找不到的NavigationController,因为我固有的UITableViewSource。

Opskrift ops = new Opskrift(item.ImageName, item.Name, item.optionTxt, item.SubHeading)
this.NavigationController.PushViewController(this.opskrift, true);

如果我使用ops.NavigationController.PushViewController(this.opskrift, true);

我得到的Object引用未设置为对象异常的实例。

1 个答案:

答案 0 :(得分:3)

通过将UITableViewSource的构造函数传递给控制器​​,为您的UITableViewSource继承类访问:

public class MyTableSource : UITableViewSource
{

    private BasisViewController controller;
    public MyTableSource(BasisViewController parentController)
    {
        this.controller = parentController;
    }

    //use like this in a method:
    //this.controller.NavigationController.PushViewController(opskrift, true);
}

您的Opfskrift控制器的NavigationController属性返回null,因为它在初始化时不是导航控制器堆栈的一部分(=未在导航控制器中“推送”)。当然,BasisViewController也必须属于导航控制器,其NavigationController属性包含除null之外的其他内容。