我在 iPhone 中开发了一个应用程序,现在我还需要在 iPad 上创建相同的应用程序,我有以下文件
LoginViewController.h
LoginViewController.m
LoginViewController.xib
now i added new file for ipad:
LoginViewController~ipad.xib
现在我收到错误:
Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: '-[UIViewController _loadViewFromNibNamed:bundle:] loaded the "LoginViewController" nib but the view outlet was not set.'
最佳答案
还有一些步骤要做:-
像您所说的那样为 Ipad 创建 New Xib
LoginViewController~ipad.xib
并打开它。单击文件所有者-->,如下所示:-
现在您的 ipad xib 也包含在您的 Loginviewcontroller 自定义类中
- 现在您只需检查它是 Iphone 还是 Ipad,例如:-
#import "Homeviewcontroller.h"
#import“LoginViewController.h”
#define isIpad (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
//在上面的实现方法中定义
@implementation Homeviewcontroller
现在,如果您想像上图一样装箱后加载 newNib,您可以像下面这样加载:-
if(isIpad)
{
LoginViewController *ObjLoginViewController = [[LoginViewController alloc] initWithNibName:@"LoginViewController~ipad" bundle:nil];
}
else
{
LoginViewController *ObjLoginViewController = [[LoginViewController alloc] initWithNibName:@"LoginViewController" bundle:nil];
}
编辑
将您的 FileOwner 连接到主视图,例如:-
关于iphone - 两个 nib 文件以 .h 和 .m 连接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16808100/