以编程方式定义和执行 segue
Posted
技术标签:
【中文标题】以编程方式定义和执行 segue【英文标题】:Programmatically define and perform segue 【发布时间】:2013-10-18 15:27:49 【问题描述】:我正在使用 Storyboard,我有 20 个视图控制器,它们的角落都有相同的“设置”按钮。单击它会执行对另一个 VC 的 Segue,我只是将其关闭以返回原始状态。
问题是我将不得不从所有 VC 中按住 ctrl-drag 到这个,这会导致 Storyboard 非常混乱。是否可以务实地添加它们?
我尝试展示它们,但是当我关闭时,我只是得到一个黑屏。使用以下;
settingsViewController *settingsVC = [[settingsViewController alloc]init];
[self presentViewController:settingsVC animated:YES completion:nil];
然后我就这样解雇了;
[self dismissViewControllerAnimated:YES completion:nil];
【问题讨论】:
那是什么类型的转场?Custom
, push
, modal
?
在我使用模态的情节提要中,这些工作正常,但我想最小化情节提要中的箭头。此 presentViewController 的“设置”看起来不错,只是消失为黑色。
【参考方案1】:
首先,通过使用 alloc init 创建 settingsVC,您完全绕过了情节提要,这就是情节提要添加 UI 时出现黑屏的原因。
但是,您仍然可以完全不使用 segues。
要做的第一件事,在故事板中。转到设置控制器并在属性检查器中给它一个标识符。类似“SettingsViewController”的东西。
现在在您设置按钮操作...
- (IBAction)settingsButtonPressed
UIViewController *settingsViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"SettingsViewController"];
[self presentViewController:settingsViewController animated:YES completion:nil];
这将使用情节提要来创建视图控制器,以便您随后可以将其所有 UI 呈现在适当的位置。
【讨论】:
您将如何使用自定义初始化方法进行初始化?以上是关于以编程方式定义和执行 segue的主要内容,如果未能解决你的问题,请参考以下文章