推送视图控制器不显示从故事板添加的元素

时间:2012-08-26 14:37:02

标签: ios xcode pushviewcontroller

好的,到目前为止,我的故事板中有两个视图控制器。一个用“登录”元素和另一个用作“用户家”的东西。我打算执行以下操作:当用户点击登录时,会有一些处理,然后它应显示给用户的主屏幕..

当我通过故事板进行操作时,我的意思是=控制拖动“登录”按钮到用户的主视图它工作正常。但我无法使用它,因为我要处理登录数据。它同时也显示了一些动画。所以,我要以编程方式进行这种转变。我在登录按钮的IBAction ::

中写了以下代码
HomeViewController *homeView = [[HomeViewController alloc] init];

[self presentViewController:homeView animated:YES completion:NULL] ;

现在,这会将用户带到预期的视图。但是,主视图中的元素(例如标签,导航栏没有显示。这就是我的担心。 (理论上,我可以以编程方式构建整个视图,但我认为不是这样做的正确方法,是吗?我想充分利用故事板功能,即在故事板中设计最大UI,并从后端使用它们如何他们工作。)

我该怎么办?

干杯。

PS:我打算添加更多的视图控制器,所以目前我没有想到导航控制器。不确定,如果我应该使用它。

2 个答案:

答案 0 :(得分:2)

使用应该使用的故事板:

UIViewController *homeView = [self.storyboard instantiateViewControllerWithIdentifier:@"someID"];
[self presentViewController:homeView animated:YES completion:NULL] ;

然后在故事板中将ID设置为视图控制器,如下所示:

enter image description here

此外,如果您希望完全在代码中设计UI完全没有问题。我个人更喜欢它。它为您提供了比界面构建器更多的灵活性。

答案 1 :(得分:2)

除了NSPostWhenIdle建议instantiateViewControllerWithIdentifier之外,您还可以在两个视图控制器之间定义一个segue(不在按钮和第二个控制器之间,而是在两个视图控制器之间):

Segue between controllers

然后为segue指定唯一标识符,然后让IBAction方法执行performSegueWithIdentifier。这样,您的故事板将继续直观地表示视图控制器之间的各种关系。