我有一个项目,将只适用于iphone,版本4,5和6.在我的情况我使用xib文件,在这种情况下,我创建了一个名为ViewController与xib文件,然后创建三个文件,厦门国际银行,造成你有以下结构:更改视图为不同的设备
ViewController.h
ViewController.m
ViewController.xib
ViewController4inch.xib
ViewController47inch.xib
ViewController55inch.xib
里面我ViewController.m我把这段代码里面viewDidLoad中,认识到iphone的版本和更改视图以用户:
- (void)viewDidLoad {
[super viewDidLoad];
if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) {
ViewController *extratoVC = [[ViewController alloc] init];
if([UIScreen mainScreen].bounds.size.height == 480){
// 4-4s
extratoVC = [[ViewController alloc] initWithNibName:@"ViewController" bundle:nil];
}
if([UIScreen mainScreen].bounds.size.height == 568){
// 4-inch
extratoVC = [[ViewController alloc] initWithNibName:@"ViewController4inch" bundle:nil];
}
if([UIScreen mainScreen].bounds.size.height == 667){
// 4.7-inch
extratoVC = [[ViewController alloc] initWithNibName:@"ViewController47inch" bundle:nil];
}
if([UIScreen mainScreen].bounds.size.height == 736){
// 5.5-inch
extratoVC = [[ViewController alloc] initWithNibName:@"ViewController55inch" bundle:nil];
}
[self presentViewController:extratoVC animated:YES completion:nil];// this line causing problem that you see below...
}
}
不幸的是,这段代码不起作用,我得到了fo llowing错误消息:
Thread1: EXEC_BAD_ACCESS (code = 2, address = 0xbf72bfbc)
在我的项目的所有意见将通过类来处理ViewController.h/.M
就我而言,我经历的过程做的.xib文件,不希望要使用故事板,任何人都知道为什么会出现这个问题以及如何解决它?
这不是很好的做法。为什么不使用带约束的自动布局? – 2014-10-02 15:07:34
当您在if语句中放置断点并逐步完成时会发生什么?它通过例外在哪条线上? – 2014-10-02 15:09:07
想象一下,如果您尝试在Android应用中执行此操作,会发生什么情况。这是否给你任何洞察力,为什么它可能是一个坏主意? – Greg 2014-10-02 15:19:52