gpt4 book ai didi

iPhone UIStoryBoard 是否可以以编程方式创建一个 Controller ,其界面在 Storyboard中定义?

转载 作者:行者123 更新时间:2023-12-03 19:41:37 24 4
gpt4 key购买 nike

我在 UIStoryBoard 中定义了一堆 View Controller 。我喜欢将它们全部放在一处以便于访问。但是,我遇到了一个问题,我需要在应用程序内的其他位置实例化 View Controller 的副本。 是否可以使用 Storyboard中定义的接口(interface)以编程方式创建 UIViewController?

否则我必须将该 Controller 的 Storyboard View 复制到单独的 .xib 文件中并手动加载该 View 。

感谢您的澄清!

最佳答案

是的,而且还不算太糟糕! -instantiateInitialViewController这就是您正在寻找的。

我倾向于使用的一个助手是:

- (void) loadStoryboard:(NSString *)storyboardName animated:(BOOL)animated
{
if ([_currentStoryboard isEqual:storyboardName])
{
return;
}

_currentStoryboard = storyboardName;

UIStoryboard* storyboard = [UIStoryboard storyboardWithName:storyboardName bundle:nil];
UIViewController* newRootController = [storyboard instantiateInitialViewController];

if (!animated)
{
self.window.rootViewController = rootController;
return;
}

newRootController.view.alpha = 0.0;
[self.window addSubview:newRootController.view];

[UIView animateWithDuration:0.5 animations:^{
newRootController.view.alpha = 1.0;
} completion:^(BOOL finished) {
self.window.rootViewController = newRootController;
}];
}

此变体是为您的垃圾场设置的 AppDelegate - 不过应该很容易适应大多数情况。

关于iPhone UIStoryBoard 是否可以以编程方式创建一个 Controller ,其界面在 Storyboard中定义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10290563/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com