gpt4 book ai didi

ios - 呈现 View Controller 也可以是呈现 View Controller 吗?

转载 作者:可可西里 更新时间:2023-11-01 03:08:38 25 4
gpt4 key购买 nike

在现有 View 之上,我想:a) 向用户显示一个屏幕b) 然后发送短信c) 向用户显示另一个屏幕。

对于 a) 我正在这样做:

[[UIApplication sharedApplication].delegate.window.rootViewController presentViewController: firstController animated: NO completion:nil];

对于 b) 我正在做同样的事情,除了这当然是呈现不同的 vc,一个 MFMessageComposeViewController。

然而,为了让 b) 出现,我首先必须使用以下命令关闭第一个 View Controller :

   [[UIApplication sharedApplication].delegate.window.rootViewController dismissViewControllerAnimated:NO completion: nil];

到目前为止一切正常,我可以看到第一个 View 出现,然后看到 SMS 撰写 View 出现。发送 SMS 时,我这样做是为了关闭 SMS 撰写 View

   [[UIApplication sharedApplication].delegate.window.rootViewController dismissViewControllerAnimated:NO completion: nil];

但是当我尝试使用 presentViewController 向用户呈现另一个屏幕时,什么也没有发生。我看不出为什么会这样,有什么我不知道的吗?

实际上,SMS View 之前和之后的屏幕是相同的,只是它们具有不同的文本,因此最简单的步骤顺序是:

a) 将文本“abc”呈现给 View Controller b) 呈现 SMS Controller c) 发送 SMS 时关闭 SMS Controller d) 使用 IBOutlet 更新第一个 View Controller 中的文本e) 关闭第一个 View Controller 。

但是如前所述,如果我不关闭第一个 View Controller ,SMS Controller 将不会出现。所以我的主要问题是如何在第一个 View Controller 之上显示 SMS Controller ?

最佳答案

您可以在另一个关闭后展示一个:

UIViewController *rvc = [UIApplication sharedApplication].delegate.window.rootViewController;
[rvc dismissViewControllerAnimated:NO completion:^{
[rvc presentViewController: secondController animated: NO completion:nil];
}];

或者在上面展示另一个:

UIViewController *rvc = [UIApplication sharedApplication].delegate.window.rootViewController;
UIViewController *pvc = rvc.presentedViewController; // you may need to loop through presentedViewControllers if you have more than one
[pvc presentViewController: secondController animated: NO completion:nil];

关于ios - 呈现 View Controller 也可以是呈现 View Controller 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10288378/

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