两个 nib 文件用 .h 和 .m 连接?
Posted
技术标签:
【中文标题】两个 nib 文件用 .h 和 .m 连接?【英文标题】:Two nib files connect with .h and .m? 【发布时间】:2013-05-29 07:39:21 【问题描述】:我在 iphone 中开发了一个应用程序,现在我还需要在 ipad 上创建相同的应用程序,我有以下文件
LoginViewController.h
LoginViewController.m
LoginViewController.xib
now i added new file for ipad:
LoginViewController~ipad.xib
现在我收到一个错误:
由于未捕获的异常而终止应用程序 'NSInternalInconsistencyException',原因:'-[UIViewController _loadViewFromNibNamed:bundle:] 加载了“LoginViewController”笔尖,但未设置视图出口。'
【问题讨论】:
检查这个:-***.com/questions/16787664/…LoginViewController~ipad.xib
->view
需要在 Interface builder 中设置为 File Owner's
->view
属性。
这篇文章:***.com/questions/4763519/… 解释了一切
【参考方案1】:
还有一些步骤要走:-
像LoginViewController~ipad.xib
那样为 Ipad 创建新的 Xib 并打开它。
单击文件所有者--> 如下所示:-
现在您的 ipad xib 也与您的 Loginviewcontroller customeClass 一起使用
现在您只需要检查一下 IsIphone 或 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 连接到主视图,例如:-
【讨论】:
Nitin 你给我条件的代码,它会在哪里定义?在.m? Nitin 我把你的代码放在哪个文件中,我没有使用“Homeviewcontroller.h”,基本上我是 xcode 的新手。 你把 loginviewcontroller 放在哪里了? 我的意思是在 .h 或 .m 文件或其他地方? 你想在哪里推送你的 loginviewcontroller 你把代码放在按钮点击事件中你想登录viewcontroller 然后在 .m 文件按钮点击事件中你应该把我在回答中提到的代码放以上是关于两个 nib 文件用 .h 和 .m 连接?的主要内容,如果未能解决你的问题,请参考以下文章
为 iPhone 4 和 iPhone 5 使用两个不同的 nib 文件
nsobject 控制器跨两个 nib (xib) 文件链接。声明 nib 实例化