我应该在RowSelected中添加什么代码?
我已经使用过这个但没有运气:/。
public override void RowSelected(UITableView tableView, NSIndexPath indexPath)
{
var window = UIApplication.SharedApplication.KeyWindow;
var vc = window.RootViewController;
while (vc.PresentedViewController != null)
{
vc = vc.PresentedViewController;
}
mainnearmisses myTarget = (UIViewController)vc.Storyboard.InstantiateViewController("mnearm") as mainnearmisses;
myTarget.email = locations[indexPath.Row].shopname + "";
vc.PresentViewController(myTarget, true, null);
}
答案 0 :(得分:0)
为您提供一些建议。
<强> 1。将ViewController本身设置为dataSource的初始化构造函数中的参数。
ViewController中的
this.TableView.Source = new TableSource(tableItems.ToArray(), this);
in dataSource
ViewController owner;
public TableSource (string[] items, ViewController owner)
{
tableItems = items;
this.owner = owner;
}
这可以使您的代码轻松导航到另一个VC。 只需使用它而不是在Windows上查找当前的vc。
this.owner.PresentViewController(myTarget, true, null);
<强> 2。如果tableView填满了屏幕,则可以将ViewController更改为UITableViewController 。
因为它继承了IUITableViewDataSource的形式,所以它可以在自己的类中处理事件(即该方法创建tableView)。
3.如上所述,检查viewController是否存在
检查storyboard id并在项目中找到相应的viewController。