Chr*_*nzo 17 cocoa-touch objective-c ios uistoryboard
我希望能够[UIStoryboard mainStoryboard]在运行时简单地打电话来获取iPad或iPhone故事板.
Chr*_*nzo 21
这是一个UIStoryboard类别,它会做到这一点:
#import <UIKit/UIKit.h>
@interface UIStoryboard (LDMain)
+ (instancetype)LDMainStoryboard;
@end
Run Code Online (Sandbox Code Playgroud)
#import "UIStoryboard+LDMain.h"
UIStoryboard *_mainStoryboard = nil;
@implementation UIStoryboard (LDMain)
+ (instancetype)LDMainStoryboard {
if (!_mainStoryboard) {
NSBundle *bundle = [NSBundle mainBundle];
NSString *storyboardName = [bundle objectForInfoDictionaryKey:@"UIMainStoryboardFile"];
_mainStoryboard = [UIStoryboard storyboardWithName:storyboardName bundle:bundle];
}
return _mainStoryboard;
}
@end
Run Code Online (Sandbox Code Playgroud)
Ste*_*her 12
[UIStoryboard storyboardWithName:storyboardName bundle:bundle]如果尚未加载故事板,则可以使用.
但是,如果有,则会加载新副本.
您也可以使用viewController.storyboard现有的.如果你有一个mainWindow应用程序代理的一部分(你可能会这样做),你可以得到rootViewController.storyboard它.
就像是:
UIApplication *application = [UIApplication sharedApplication];
MyAppDelegate *myAppDelegate = ((MyAppDelegate *)application).delegate;
return myAppDelegate.mainWindow.rootViewController.storyboard;
Run Code Online (Sandbox Code Playgroud)
如果没有,这可能对你有用:
UIApplication *application = [UIApplication sharedApplication];
UIWindow *backWindow = application.windows[0];
return backWindow.rootViewController.storyboard
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7850 次 |
| 最近记录: |