我在这里和谷歌看到了类似的问题,但没有人回答我的实际问题.我想为iPhone和iPad配备一个NIB.NIB本身应该只有一个空视图.应该进入视图的所有内容都是以编程方式完成的.我检查设备是否是iPhone/iPad,然后计算并设置布局.一点点工作,但对于所需的任务,这对我来说是最好的解决方案.
但是当通过"新文件... - >用户界面 - >视图"添加新视图时,我被要求提供设备系列.选择当然是iPhone或iPad.但我希望视图可以在两种设备上工作,一种通用的.
我尝试了iPhone视图,它实际上适用于iPhone和iPad两种设备.所以似乎一切都很好.我的问题更通用,询问是否可以重新使用iPhone的iPhone视图.我应该换一种方式吗?更好的解决方案?
请理解我真的想以单一视图和编程方式工作,因此请为每个设备使用单独视图并使用IB的解决方案请保留!
谢谢
如果以编程方式创建所有内容,则根本不需要使用nib来创建空视图.
你的UIViewController子类应该是这样的
@implementation MyViewController -(void)loadView { //Do not call [super loadView] in your implementation. //The super implementation loads the nib based on the nibName and nibBundle properties. UIView * view = [[UIView alloc] init]; //Add subviews, etc //You must assign a UIView object to the view property before loadView completes self.view = view; } @end
您可以使用以下任何格式实例化视图控制器:
MyViewController * controller = [[MyViewController alloc] initWithNibName:nil bundle:nil]; MyViewController * controller = [[MyViewController alloc] init]; MyViewController * controller = [MyViewController new];