所以我正在使用 Xcode 制作一个应用程序...而不是使用尺寸类或自动布局来考虑各种 iOS 屏幕尺寸,我在 AppDelegate.m
中进行了屏幕高度测试> 并根据返回的屏幕高度加载特定的 Storyboard
;这样,所有 storyboards
都可以使用相同的 ViewController
。
我的应用成功地做到了这一点,并根据设备高度加载了四个 Storyboards
之一,然后所有这些都由唯一的 ViewController
控制。
我的问题是,是否有一个函数可以返回哪个 Storyboard
已被初始化/正在使用?原因是我想根据正在使用的 Storyboard
加载不同的变量公差。
我搜索了一圈,似乎找不到,我只找到了一个甚至描述了这种方法的资源 (youtube)。
感谢您的宝贵时间。
最佳答案
My question is, is there a function that can return which Storyboard has been initialised/is in use?
每个 View Controller 都有一个 storyboard
属性,指向从中加载它的 Storyboard。不过,这可能对您没有帮助—— Storyboard没有您可以检索的标识符,因此仅仅拥有一个指向 Storyboard的指针并不能让您区分 Storyboard。
The reason being is I want to load different variable tolerances based on which Storyboard is in use.
处理此问题的一种方法是将您需要的信息存储在 View Controller 的“用户定义的运行时属性”中。您可以只存储一个标识符,也可以直接存储“可变公差”。假设您只想存储一个标识符。向您的 View Controller 添加一个属性:
@interface MyViewController : UIViewController
//...
@property(nonatomic) NSString *storyboardID;
//...
@end
接下来,在每个 Storyboard的 View Controller 的用户定义属性中设置键 storyboardID
的值。在每个 Storyboard中选择您的 View Controller 并选择身份检查器:
完成!现在您可以读取代码中的值:
if ([self.storyboardID isEqualToString:@"iPhone4Storyboard"]) {
//...
}
关于ios - 找到ViewController中初始化了哪个StoryBoard? Xcode,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29964318/