gpt4 book ai didi

iOS Storyboard 切换到一个在 AppDelegate 上没有 segue 的 View

转载 作者:行者123 更新时间:2023-11-28 22:48:40 25 4
gpt4 key购买 nike

我有一个一次性协议(protocol) View ,它只会在用户第一次启动应用时显示。

我使用 Storyboard IOS 5.1,我的 Root View 是一个导航 View Controller 。我的协议(protocol) View 与导航 Controller 无关我只想显示一个 modalview 弹出窗口然后关闭 View : enter image description here

我使用以下代码,但它不执行任何操作,应用程序只是继续并启动导航 View Controller 我放置了标志,是的,应用程序进入了 if 语句。 :

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
if(login==ok){
UIStoryboard *storyboard = [UIApplication sharedApplication].delegate.window.rootViewController.storyboard;
UIViewController *loginController = [storyboard instantiateViewControllerWithIdentifier:@"AgreementViewController"];
[self.window.rootViewController presentModalViewController:loginController animated:YES];
}
return YES;

}

如何切换与 Storyboard无关的 View Controller 并将其关闭?

最佳答案

在我上周末一直在开发的应用程序中,我遇到了类似的情况。我想第一次展示一个单独的 Storyboard以进行引导设置。我的代码看起来和你的几乎一样,当我调试它时它给了我一个警告。这是因为我试图展示我的一次性 ViewController 的 rootViewController 此时在应用程序中不可见。

因此,我决定将我的一次性 View Controller 设置为 rootViewController,而不是在 rootViewController“上”呈现我的一次性 View Controller 。在你的情况下,它会是这样的:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
if(login == ok) {
UIStoryboard *storyboard = [UIApplication sharedApplication].delegate.window.rootViewController.storyboard;
UIViewController *loginController = [storyboard instantiateViewControllerWithIdentifier:@"AgreementViewController"];
[self.window setRootViewController:loginController];
}

return YES;
}

要关闭它,您可能会从一次性 View Controller 添加一个 segue 到您的第一个 View Controller ,或者您可以使用与您问题中的代码类似的代码。

另一种方法是在第一个“普通” View 的 viewDidAppear 中而不是在 AppDelegate 中进行检查和 View 切换。

希望这会为您指明正确的方向。

关于iOS Storyboard 切换到一个在 AppDelegate 上没有 segue 的 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12534500/

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