将xib的视图添加到故事板中的另一个视图中

时间:2013-07-08 14:59:01

标签: ios6 view uiview uiviewcontroller storyboard

我使用电弧和故事板在icode 6中使用xcode 4.6.2。 我创建了一个MainStoryboard.storyboard 在这里,我创建了2个viewcontrollers:SplashViewController和WalkthroughViewController。 随着segues我从一个到另一个。 在WalkthroughViewController中,我创建了2个视图:1个scrollview,从顶部覆盖370个高度,另一个视图用于登录模块,从底部覆盖110个高度。

现在我想分开这两个模块的逻辑。 因为我可以重用登录模块,演练将是一个滚动视图,它将由plist文件中的图像自动完成。

我尝试使用xib文件创建一个名为LoginViewController的uiviewcontroller,并将视图连接到我的WalkthroughViewController,将其拖放到我的.h文件中。我叫它loginView。登录视图的xib文件有2个按钮,名为“facebook login”和“skip login”。

@property (strong, nonatomic) IBOutlet UIView *loginView;

在.m文件中,我尝试使用initwithnibname方法初始化此视图,所以:

self.loginView = [[LoginViewController alloc] initWithNibName:@"LoginViewController" bundle:nil].view;

该应用程序现在可以正常运行而不会崩溃,但屏幕为空。

为什么我的观点没有被分配或看起来不应该是什么想法呢?我根本没有看到facebooklogin或skiplogin按钮..

谢谢。

2 个答案:

答案 0 :(得分:1)

你试过设置框架吗?类似的东西:

self.loginView = [[LoginViewController alloc] initWithNibName:@"LoginViewController" bundle:nil].view;
CGRect loginViewFrame = CGRectMake(0, self.view.frame.size.height-110, self.view.frame.size.width, 110);
    [self.view addSubview:loginView];
    loginView.frame = loginViewFrame;

答案 1 :(得分:1)

你最好不要这样写:

self.loginView = [[LoginViewController alloc] initWithNibName:@"LoginViewController" bundle:nil].view;

更好地使用整个viewController 喜欢:

loginView = [[LoginViewController alloc] initWithNibName:@"LoginViewController" bundle:nil];

你可以使loginView是viewController而不是视图 并添加bringSubviewToFront以使loginView可见