已经在新的Xcode4下开始了一个通用项目.我的应用程序适用于iPhone和iPad设备,但不适用于iPad.我有2个.xib文件用于MainWindow:MainWindow.xib(iPhone设备)和MainWindow-Ipad.xib(iPad设备).但是我的MainView只有一个.xib文件:MainView.xib.
所以我正在尝试为iPad设备创建一个特定的.xib文件:
新文件>用户界面>查看 - >下一步 - >设备系列:iPad - > MainView-iPad.xib - >保存
当然,没有任何连接,没有引用插座,没有任何类的链接.
我检查了我的新MainView-iPad.xib的每个缩略图,以便将它链接到我的MainViewController类,但没有成功!
在哪里或如何将其链接到我的MainViewController类?提前致谢.
我有一个我之前创建的UIViewController子类,它的控件布局在XIB文件中.
我现在想在故事板中使用这个视图控制器,但看起来虽然我可以在故事板中指出视图控制器的类名,但我无法告诉它加载XIB.
我宁愿不将所有内容从XIB移动到故事板,而是将其保存在单独的XIB中.
如何在故事板中获取此UIViewController以加载我的XIB?
我有一个MyViewController.swift
和一个MyViewController.xib
呈现MyViewController的布局.
我尝试了不同的方法加载这个视图控制器,包括:
//1
let myVC = UINib(nibName: "MyViewController", bundle:
nil).instantiateWithOwner(nil, options: nil)[0] as? MyViewController
//2
let myVC = NSBundle.mainBundle().loadNibNamed("MyViewController", owner: self, options: nil)[0] as? MyViewController
//3
let myVC = MyViewController(nibName: "MyViewController", bundle: nil)
Run Code Online (Sandbox Code Playgroud)
第三个是唯一成功的初始化,但前两个导致错误:
由于未捕获的异常'NSUnknownKeyException'而终止应用,
reason:'[setValue:forUndefinedKey:]:此类不是密钥XXX的密钥值编码兼容.
这些加载方法有什么问题?
我正在与另一位开发人员合作开发项目.我们正在研究bitbucket.
问题是他对XIB文件进行了更改.之后,当我这样做时git pull
,我会收到更改但是在XIB文件上出错.当我试图打开它时,显示警告消息说无法打开
Line 81 startTag: invalid element name.
谢谢 :)
我的问题与我的标题建议略有不同.我和xib合作过.现在我正在尝试使用故事板.我的问题是,如果我们从另一个类中浏览一个类,那么StoryBoard可以为更好的内存管理带来好处.假设我们有2个ViewControllers:ViewControllerA和ViewControllerB.我们试图通过ViewControllerA - > ViewControllerB.现在,在Xib我们的方法如下;
ViewControllerB *VCB = [ [ViewControllerB alloc] init];
[self.navigationController pushViewController: VCB Animated: YES];
Run Code Online (Sandbox Code Playgroud)
故事板在哪里,
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if ([segue.identifier isEqualToString:@"Second"])
{
SecondViewController *objSecond = (SecondViewController*)[segue destinationViewController];
}
}
Run Code Online (Sandbox Code Playgroud)
而且,做
[self performSegueWithIdentifier:@"Second" sender:self];
Run Code Online (Sandbox Code Playgroud)
所以,我的问题是我们在Xib中分配我们的类,在storyBoard中我们不是.故事板中是否有任何内存分配优势?
如何为UIImageView/UIView设置autolayout,以便iphone 6和6 plus的图像视图宽度和高度增加一点.我已经尝试添加约束宽高比,但增加的高度和宽度非常大.无论如何设置约束高度和图像视图的宽度可以手动设置为iPhone 6和6加.看一下屏幕截图,iphone 6和6 plus中的图像视图应该比它现在显示的要小一些.
可能重复:
.NIB - > .XIB有什么用?
我想知道xib和nib之间有什么区别,我知道像xib = xml接口构建器和nib是下一个接口构建器,但我不清楚两者之间的区别,请帮助我.
提前致谢.
我创建了一个示例项目来重现这个.
我有一个带有UILabel的xib文件,它具有固定的顶部,前导和尾随约束.我添加了一个minHeight约束并将行数设置为0.
我将preferredMaxLayoutWidth设置为Automatic(在xib文件中检查).
在viewDidLoad中,我是这样的:
Run Code Online (Sandbox Code Playgroud)self.myLabel.layer.borderColor = [[UIColor redColor] CGColor]; self.myLabel.layer.borderWidth = 2.0f;
self.myLabel.text = @"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim …
Run Code Online (Sandbox Code Playgroud) 我有三个不同的UITableViews,每个都在它自己的视图中,通过标签访问.理想情况下,所有这三个表都共享相同的自定义UITableViewCell类和.xib文件.
我从一个表开始,将.xib的类设置为我的自定义类,将.xib的文件所有者设置为表的父UIViewController,这非常有效.所有与自定义视图相关的代码都在单元格的类中(基于控制器设置的属性的背景图像,基于标签根据控制器设置的单元属性所需的行数自定义单元格高度等) .
结果很好:单元负责所有可视布局并响应单元控件上的用户操作,而视图控制器负责创建单元格并设置其数据.
既然我需要在其他表中重用单元格,那么自定义单元格的.xib具有单个文件所有者的事实是个问题.而不是复制.xib文件,有一种简单的方法允许多个控制器拥有它吗?
我已经阅读了使用XCode故事板来实例化使用XIB进行设计的视图控制器,但是我在使用Swift(使用Xcode 6 Beta 6)时遇到了麻烦.我想知道我做错了什么或者这个功能不再可用了吗?
我创建了一个简单的存储库,https://github.com/jer-k/StoryboardTesting-Swift,它展示了上述方法.
我设法通过添加和覆盖init来解决问题
required init(coder aDecoder: NSCoder) {
super.init(nibName: "TestViewController", bundle: NSBundle.mainBundle())
}
Run Code Online (Sandbox Code Playgroud)
但我想知道是否仍有可能让故事板为我处理这个问题.创建一个超类让我的所有UIViewControllers继承上面的代码并不是世界上最麻烦的东西,但我只是好奇.
xib ×10
ios ×8
iphone ×3
storyboard ×3
nib ×2
objective-c ×2
swift ×2
autolayout ×1
bitbucket ×1
git ×1
ios8 ×1
ipad ×1
reusability ×1
uiimageview ×1
uitableview ×1
uiview ×1
xcode ×1
xcode4 ×1
xcode5 ×1