0

我在 xcode 4.6.2 和 ios 6 中工作,使用 arc 和 storyboards。我创建了一个 MainStoryboard.storyboard 在这里我创建了 2 个视图控制器:SplashViewController 和 WalkthroughViewController。通过segues,我从一个转到另一个。在 WalkthroughViewController 中,我创建了 2 个视图:1 个滚动视图,从顶部覆盖 370 高度,另一个用于登录模块的视图,从底部覆盖 110 高度。

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

我尝试使用 xib 文件创建一个名为 LoginViewController 的 uiviewcontroller,并将视图连接到我的 WalkthroughViewController 并将其拖放到我的 .h 文件中。我称之为登录视图。登录视图的 xib 文件有 2 个按钮,分别称为“facebook 登录”和“跳过登录”。

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

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

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

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

为什么我的视图没有被分配或看起来不应该分配的任何想法?我根本看不到 facebooklogin 或 skiplogin 按钮..

谢谢你。

4

2 回答 2

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;
于 2013-07-22T11:36:48.167 回答
1

你最好不要这样写:

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

更好地使用整个 viewController 像:

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

并且您可以使 loginView 是 viewController 而不是视图并添加-bringSubviewToFront 以使 loginView 可见

于 2013-07-22T12:17:07.137 回答