我有一个非常适合 iPad 的主从应用程序。但是,iPhone 版本不起作用,因为DetailViewController
在 iPad 版本中发送到 的变量不会发送到 iPhone DetailViewController
。我可以在实现中用一行代码解决这个问题MasterViewController
:
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
self.detailViewController=segue.destinationViewController;
}
不幸的是,当我实现该代码时,iPad 版本停止工作。当我从另一个视图控制器 ( HomeViewController
) 返回到DetailViewController
. 该错误日志是:
2012-07-14 14:29:12.924 46 Tracker[2772:11603] -[HomeViewController setDetailItem:]: unrecognized selector sent to instance 0x7cad4f0
2012-07-14 14:29:12.925 46 Tracker[2772:11603] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[HomeViewController setDetailItem:]: unrecognized selector sent to instance 0x7cad4f0'
*** First throw call stack:
(0x148a022 0x201acd6 0x148bcbd 0x13f0ed0 0x13f0cb2 0x2cb0 0x2d75c5 0x2d77fa 0xb6c85d 0x145e936 0x145e3d7 0x13c1790 0x13c0d84 0x13c0c9b 0x16a07d8 0x16a088a 0x246626 0x1fdd 0x1f45)
terminate called throwing an exception(lldb)
那么,有什么方法可以让我只在用户使用 iPhone 时才运行第一个代码块?或者,我可以修复代码以使其在两个设备上都能正常工作吗?
这是我的 iPad 故事板的链接,以(希望)使其更清晰。HomeViewController
当我点击表格单元格后,我遇到了问题:http DetailViewController
: //www.grapekeeper.com/storyboards.png