2

好的,到目前为止,我的故事板中有两个视图控制器。一个带有“登录”元素,另一个是“用户的家”之类的东西。我打算做以下事情:当用户点击登录时,有一些处理,然后它应该显示在用户的主屏幕上..

当我通过情节提要执行此操作时,我的意思是 = 控制将“登录”按钮拖动到用户的主视图,它工作正常。但我不能使用它,因为我必须处理登录数据。同时它还显示了一些动画。所以,我必须以编程方式进行这种转变。我在登录按钮的 IBAction :: 中编写了以下代码

HomeViewController *homeView = [[HomeViewController alloc] init];

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

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

我该怎么做 ?

干杯。

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

4

2 回答 2

2

使用您应该使用的情节提要:

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

然后将 ID 设置为情节提要中的视图控制器,如下所示:

在此处输入图像描述

此外,如果您愿意,完全用代码设计 UI 绝对没有错。我个人更喜欢它。它为您提供比界面生成器更大的灵活性。

于 2012-08-26T14:41:09.950 回答
2

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

控制器之间的 Segue

然后给 segue 一个唯一标识符,然后让你的IBAction方法执行performSegueWithIdentifier. 这样,您的故事板将继续以视觉方式表示您的视图控制器之间的各种关系。

于 2012-08-26T15:02:22.193 回答