简体   繁体   English

TabBar 在 Segue 之后消失(Swift - Xcode)

[英]TabBar disappears after Segue (Swift - Xcode)

I wanna know how can i perform a segue from a normal UIViewController to my UIViewcontroller (with a tab bar) while still keeping the tab bar intact/visible.我想知道我怎么能执行从一个正常赛格瑞UIViewControllerUIViewcontroller (带标签栏),同时仍保持在标签栏完整/可见。 Do look at the image attached for a better reference.请查看所附图片以获得更好的参考。

PS: I tried unWindSegue but it doesn't resolve it because i don't want to load my 2nd UIViewController first before i perform the segue. PS:我试过 unWindSegue 但它没有解决它,因为我不想在执行 segue 之前先加载我的第二个UIViewController

PickACardController PickACardController

import UIKit

class PickCardController: UIViewController {
    @IBOutlet var button1: UIButton!
    @IBOutlet var button2: UIButton!
    @IBOutlet var button3: UIButton!
    var returnValue: Int = UserDefaults.standard.integer(forKey: "tokens")
    var returnValue2: Int = UserDefaults.standard.integer(forKey: "userScore")

    override func viewDidLoad() {
        super.viewDidLoad()
        if (UserDefaults.standard.integer(forKey: "dissapear") == 1)
        {
            button1.setImage(UIImage(named: "wildcardbackingglassesdarken-3x.png"), for: .normal)
            button1.isEnabled = false
        }
        if (UserDefaults.standard.integer(forKey: "dissapear2") == 1)
        {
            button2.setImage(UIImage(named: "wildcardbackingbikini-3x.png"), for: .normal)
            button2.isEnabled = false
        }
        if (UserDefaults.standard.integer(forKey: "dissapear3") == 1)
        {
            button3.setImage(UIImage(named: "wildcardbackingbottomdarken-3x.png"), for: .normal)
            button3.isEnabled = false
        }

    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()

    }

    @IBAction func Button1(_ sender: Any) {
        var i: Int = 0
        let randomNumber = arc4random_uniform(3) + 1
        i = Int(randomNumber)

        let alert = AlertController(title: "Congratualations", message: "You earned \(i) tokens!", preferredStyle: .alert)
        alert.setTitleImage(UIImage(named: "token"))
        // Add actions
                alert.addAction(UIAlertAction(title: "Let's See!", style: UIAlertActionStyle.default, handler: { (action) in
                    self.returnValue = self.returnValue + i;
                    UserDefaults.standard.set(self.returnValue, forKey:"tokens")
                    self.performSegue(withIdentifier: "show", sender: nil)
                    }))
            if (returnValue != 30){
                alert.addAction(UIAlertAction(title: "Continue Playing", style: UIAlertActionStyle.default, handler:    { (action) in
                    self.returnValue = self.returnValue + i;
                    UserDefaults.standard.set(self.returnValue, forKey:"tokens")
                    self.performSegue(withIdentifier: "continue", sender: self)
                    }))
            }
        self.present(alert, animated: true, completion: nil)
        UserDefaults.standard.set(1, forKey:"dissapear")
    }

TokenController令牌控制器

import UIKit

class TokenController: UIViewController {
    @IBOutlet var tokens: UILabel?
    @IBOutlet var minus1: UIButton!
    @IBOutlet var minus2: UIButton!
    var returnValue: Int = UserDefaults.standard.integer(forKey: "tokens")
    override func viewDidLoad() {
        super.viewDidLoad()

        tokens?.text = "x\(returnValue)"
    }

在此处输入图片说明

let storyBoard = UIStoryboard(name: "Main", bundle: nil)
let vc = storyBoard.instantiateViewController(withIdentifier: "yourTabbarController") as! UITabBarController
self.present(vc, animated: true, completion: nil)

Then:然后:

vc.selectedIndex = indexOfYourTokenVc in tabbar

I hope it may help.我希望它会有所帮助。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM