让 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 没有被调用?