我有两种不同的xib。假设我们为iPhone和iPhone创建了一个xib。另一个用于iPad。我想知道如何将iPad xib的插座引用属性传递给已经由iPhone Xib设置的viewcontroller属性。
我知道一种实现方法是使用Size类。但我想知道如何通过上述方法实施。
答案 0 :(得分:0)
设置两个Xib并设置名称
1.ViewController_ipad.XIB for ipad
2.ViewController.XIB for iphone
在打开iphone xib的同时在iPhone中运行Project。 在打开ipad xib的同时在iPad中运行Project。
并设置逻辑
if ( UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad )
{
ViewController *tempView = [[ViewController alloc] initWithNibName:@"ViewController_ipad" bundle:nil];
[self.navigationController pushViewController:tempView animated:YES];
}
else
{
ViewController *tempView = [[ViewController alloc] initWithNibName:@"ViewController" bundle:nil];
[self.navigationController pushViewController:tempView animated:YES];
}
答案 1 :(得分:0)
是的,我们可以为同一个viewController使用两个不同的xib。以下是我们希望iPhone和iPad使用不同xib的一个示例。
NSString* nibName = @"ProgressViewController";
if( UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad )
nibName = @"ProgressViewController_iPad";
ProgressViewController * view = [[ProgressViewController alloc] initWithNibName:nibName bundle:nil];
[self.navigationController pushViewController:view animated:YES]; // Optional if you have used navigation controller at root
答案 2 :(得分:0)
是。您可以在单视图控制器中使用两个xib。 使用此功能,您可以切换到其他笔尖。 (XIB) NSString * nib = @" ViewController&#34 ;;
if( UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad )
nib = @"ViewController_iPad";
ViewController * view = [[ViewController alloc] initWithNibName:nib bundle:nil];
[self.navigationController pushViewController:view animated:YES];
您可以将相同的函数与其他nib对象绑定,但必须使用不同的名称绑定每个对象
喜欢: - ViewController中的标签apple所以你可以放置标签名称 在ViewController_iPad apple_iPad。
中
这意味着您可以在两个笔尖中使用相同的功能,但必须为两者使用diff对象绑定。