gpt4 book ai didi

ios - 在上一个 View 的顶部打开 Storyboard

转载 作者:行者123 更新时间:2023-11-29 00:16:34 28 4
gpt4 key购买 nike

我创建了 Storyboard,我想在另一个 View 之上或 subview 中打开它,以便当我关闭或销毁 Storyboard的此 View 时,打开 Storyboard的早期 View 保持不变。

当我运行以下代码时:-

UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main_iPad" bundle:nil];
ViewController *detailViewController = [storyboard instantiateViewControllerWithIdentifier:@"neolick"];
[[UIApplication sharedApplication].keyWindow setRootViewController:detailViewController];

首先, Storyboard打开,但我不知道它是在前一个 View 的顶部打开还是破坏了前一个 View 然后打开。其次, Storyboard上所需的功能会自动运行,这是我想要的,但这些功能是如何工作的。

如果有人能帮助我理解上面的代码及其工作原理。

注意:由于某种原因,我无法在相同状态下再次调用之前的 View 。

提前致谢!!

最佳答案

这里您正在设置 Root View Controller

它不会保留您的后屏幕,因为它是您想要的

如果您想保留当前屏幕并在该屏幕上显示其他屏幕

你有两种方法

1) 呈现 ViewController2)推送 View Controller

1)呈现ViewController

为此,您可以将您的屏幕显示在其他可见屏幕的顶部

例如

- (IBAction)btnNextTapped:(id)sender {
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main_iPad" bundle:nil];
ViewController *detailViewController = [storyboard instantiateViewControllerWithIdentifier:@"neolick"];
[self presentViewController:detailViewController animated:true completion:nil]

}

2)推送 View Controller

为此,您需要 NavigationController 并需要从当前可见屏幕推送您的 ViewController

[self.navigationController pushViewController:vc animated:true];

编辑

根据讨论,您需要找到当前的顶 View Controller ,然后您应该呈现它

将此方法添加到您的方法下方

- (UIViewController*) topMostController
{
UIViewController *topController = [UIApplication sharedApplication].keyWindow.rootViewController;

while (topController.presentedViewController) {
topController = topController.presentedViewController;
}

return topController;
}

并用代码替换这个方法

- (void)goToNewPage:(CDVInvokedUrlCommand*)command 
{
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main_iPad" bundle:nil];
ViewController *detailViewController = [storyboard instantiateViewControllerWithIdentifier:@"neolick"];

[[self topMostController] presentViewController:detailViewController animated:true completion:nil];
}

关于ios - 在上一个 View 的顶部打开 Storyboard ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45189224/

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