让 didSelectRowAtIndexPath 转到名为“MainStoryboard”和“MainStoryboardiPad”的 UIStoryboard

Posted

技术标签:

【中文标题】让 didSelectRowAtIndexPath 转到名为“MainStoryboard”和“MainStoryboardiPad”的 UIStoryboard【英文标题】:Getting didSelectRowAtIndexPath to goto UIStoryboard with name "MainStoryboard" and "MaiinStoryboardiPad" 【发布时间】:2014-11-13 17:03:01 【问题描述】:

我目前遇到一个问题,我有适用于 iPhone 的 Mainstoryboard.storyboard 我还设置了适用于 iPad 的 MainStoryboardiPad,一切看起来都很好,但是当我从完整的 ipad 屏幕实现下面的代码时,我iPad 左上方的 iPhone 屏幕。

谁能帮忙解决这个问题,或者如果你知道让两个故事板工作的正确方法?

    Job *consignment = self.job[indexPath.section];
    UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];
    MsMenuController *controller = [storyboard instantiateViewControllerWithIdentifier:@"MsMenuController"];
    controller.consignment = consignment;
    [self.navigationController pushViewController:controller animated:YES];

如果我将 storyboardWithName:@"MainStoryboard" 更改为 storyboardWithName@"MainStoryboardiPad" 它工作正常,但我需要能够在两个设备上运行。

【问题讨论】:

【参考方案1】:
NSString *storyboardName = UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone
                               ? @"MainStoryboard" : @"MainStoryboardiPad";
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:storyboardName bundle:nil];

或者您也可以改用self.storyboard

【讨论】:

非常感谢,大部分时间都在用 UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone 的 if 语句来敲我的脑袋。

以上是关于让 didSelectRowAtIndexPath 转到名为“MainStoryboard”和“MainStoryboardiPad”的 UIStoryboard的主要内容,如果未能解决你的问题,请参考以下文章

在 didSelectRowAtIndexPath 之后 prepareForSegue?

我的 didSelectRowAtIndexPath 没有被调用

didSelectRowAtIndexPath 没有被调用?

tableView - didSelectRowAtIndexPath 未调用

快速:didSelectRowAtIndexPath

我可以麻烦UITableViewDelegate的didSelectRowAtIndexPath:吗?