Xamarin:RowSelected没有在设备上调用,在模拟器中很好

时间:2014-04-07 12:40:14

标签: ios xamarin.ios xamarin

我正在Xamarin中构建一个基于表视图的简单应用程序。 UITableViewSource上的我的RowSelected事件在模拟器中完美运行,但是当我在运行iOS 7.1的iPhone 4S上调试应用程序时没有调用它

这是继承UITableViewSource

的类中的代码
public override void RowSelected (UITableView tableView, NSIndexPath indexPath)
    {
        Console.WriteLine ("Selected");
        tableView.DeselectRow (indexPath, true);
    }

在方法中添加断点在模拟器中按预期工作,但断点在设备上运行时永远不会被击中。没有错误发生,表中的单元格仍然被选中,好像我没有覆盖RowSelected方法。

我尝试了很多东西,包括剥离所有其他事件代码,甚至从头开始创建项目。

非常感谢任何帮助。

3 个答案:

答案 0 :(得分:2)

我也刚刚在这个问题上反弹过来。答案没有解释,但我关闭了Xcode,清理并重建了解决方案。在我的情况下,模拟器工作正常,但设备不会触发行选择。

答案 1 :(得分:0)

我遇到了一个问题,你有没有添加一些Tap手势或什么东西给你的桌子?因为当您点击一行时调用它,而不是行选择方法。

希望它有所帮助。

答案 2 :(得分:0)

我发现解决方法是从我在Visual Studio中编译的Xamarin项目中删除引用的DLL 。相反,我将构成DLL的C#文件添加到Xamarin解决方案中,然后允许Xamarin Studio在构建过程中编译它们。这立即解决了这个问题。

我尝试过的其他一件事就是改用Xamarin Studio的Alpha版本。起初这似乎解决了这个问题,但我后来意识到虽然我的应用程序中的主要UITableView现在正在触发RowSelected事件,但还有另一个UITableView仍然没有工作。