以模态方式将 VC 呈现在其他 VC 之上 - 两者都是可触摸的

Posted

技术标签:

【中文标题】以模态方式将 VC 呈现在其他 VC 之上 - 两者都是可触摸的【英文标题】:Present VC modally above other VC - both touchable 【发布时间】:2017-07-04 17:26:21 【问题描述】:

我想在另一个 VC 上方展示一个 VC,但希望两者都可以点击和负责。

我有一个文本字段,可以打印出每个 @-sign 后面的字符串。

写@时,我有一个 VC,它在第一个 VC 上方弹出一个小表格视图,以后应该代表名称包含打印输出字符串的用户。

我需要第一个 vc 仍然负责,因为目前我无法单击第一个 VC 上的按钮和文本字段,当第二个 VC 弹出时,即使我可以看到所有内容(将背景设置为清除)。

        if commentTextField.text!.contains("@")
        print("changed textField")
        let vc = self.storyboard?.instantiateViewController(withIdentifier: "suggestedUsersViewController") as  UIViewController!
        vc?.modalPresentationStyle = .overCurrentContext
        vc?.view.backgroundColor = .clear


        present(vc!, animated: true, completion: nil)

    

我如何得到@- 符号后面的帖子

        let caption = commentTextField.text


    let words = caption?.components(separatedBy: CharacterSet.whitespacesAndNewlines)
    for var word in words! 
            if word.hasPrefix("@") 
                word = word.trimmingCharacters(in: CharacterSet.punctuationCharacters)

                print("wort ist", word)
            
    

目前它只是弹出第一个 vc,然后它不再可点击,我无法更改文本字段

图片

【问题讨论】:

【参考方案1】:

present 函数将使第二个视图控制器覆盖整个页面,您将无法再从屏幕访问顶部视图控制器下方的视图控制器。

要实现您的目标,您需要在视图上放置UITableView,然后继续显示或隐藏该视图。如果你真的想要另一个视图控制器,你可以创建一个包含视图并嵌入到另一个view controller,就像这样

【讨论】:

对于我的情况,它不起作用,你能仔细检查一下:***.com/questions/66631995/…,谢谢。提前

以上是关于以模态方式将 VC 呈现在其他 VC 之上 - 两者都是可触摸的的主要内容,如果未能解决你的问题,请参考以下文章

如何以模态方式呈现 VC,然后转到嵌入在导航控制器中的 VC

在 iOS 10 中以模态方式呈现新 VC 时崩溃

Xcode 11.1 查看控制器在当前 VC 下可见时以模态方式呈现

如何在模态呈现的视图控制器上执行呈现模态序列?

如何在一种情况下推送视图控制器,但在另一种情况下以模态方式呈现它?

从另一个 modalviewcontroller 呈现 ModalViewcontroller