如何从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引用未设置为对象异常的实例。
答案 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之外的其他内容。