简体   繁体   中英

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. 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.

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.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

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