如果不在活动视图控制器上,如何在“幕后”执行搜寻?

时间:2018-10-06 22:30:19

标签: ios swift uitabbarcontroller segue

很抱歉,标题令人困惑。我的tabBar中的选项卡上有一个创建后工作流程。最后,有一个“创建”按钮来发布帖子。这是按下该按钮附带的代码:

@objc func postButtonPressed() {
    let tokens = self.tagsView.tokens()
    let tokensArr = tokens!.map({
        (token: KSToken) -> String in
        return token.title
    })
    if MyVariables.isScreenshot == true {
        PostService.createImagePost(image: self.screenshotOut!, timeStamp: self.postDate!, tags: tokensArr, notes: addNotesTextView.text ?? "")
    } else {
        PostService.createVideoPost(video: self.videoURL!, timeStamp: self.postDate!, thumbnailImage: self.thumbnailImage!, tags: tokensArr, notes: addNotesTextView.text ?? "")
    }
    self.tabBarController?.selectedIndex = 0
    self.tabBarController?.tabBar.isHidden = false

    //performSegue(withIdentifier: "ShowHomeViewController", sender: nil)
}

这可以通过以下方式工作:tabBarController切换回我的另一个Tab。但是我想要的是它也可以返回到cameraView Controller-创建发布工作流程的第一步,以便当用户切换回该工作流程时,它们从头开始,而不会返回到createPost现在正在发生的事情是ViewController(最后一步)。

我该如何在“幕后”执行此任务,以便可以发生?

1 个答案:

答案 0 :(得分:0)

我通过在createPost按钮中执行“展开”搜索来实现此目的...

@objc func postButtonPressed() {
    //post code//
    ...

        performSegue(withIdentifier: "unwindToCamera", sender: nil)
    }

我在界面构建器中添加了放松序列。然后在CameraViewController中,我有:

@IBAction func unwindToCamera(sender: UIStoryboardSegue) {
        self.tabBarController?.selectedIndex = 0
        self.tabBarController?.tabBar.isHidden = false
    }

,它将selectedIndex切换回主屏幕。但是,当您将标签页切换回“相机”标签时,由于之前已经完成了放松,所以我们又回到了相机视图控制器上。这是所需的行为。一个缺点是,如果不更改所选的tabBar索引,就无法放松对相机的监视,但是我的应用程序当前没有理由这样做。