通过导航控制器推送Viewcontroller,显示黑屏

时间:2016-08-23 12:41:17

标签: ios swift uinavigationcontroller

我正在堆栈溢出中搜索此问题,但无法得到问题的确切答案,我被困在其中很长一段时间。 我的问题是我试图通过导航控制器推送TestViewController。当我点击按钮时,TestViewController正在加载导航栏,而UIScreen则是黑色。

TestViewController的代码

import UIKit
class TestViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()

        // Do any additional setup after loading the view.
    }   

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }
    override func viewWillAppear(animated: Bool) {
        super.viewWillAppear(true)
        navigationItem.title = "Test page"
    }
}

按钮代码

@IBAction func secondButtonClicked(sender: AnyObject) {
    buttonPressedNumber = "Two Clicked"
    buttonTextColor = UIColor.magentaColor()
      let a = TestViewController()
      let b:UIViewController = a as UIViewController
      navigationController?.pushViewController(b, animated: false)
}

enter image description here

4 个答案:

答案 0 :(得分:7)

let storyBoard : UIStoryboard = UIStoryboard(name: "Main", bundle:nil)
let resultViewController = storyBoard.instantiateViewControllerWithIdentifier("ViewController") as! ViewController
self.navigationController?.pushViewController(resultViewController, animated: true)

答案 1 :(得分:4)

您尚未设置视图背景颜色

UIWindow的默认颜色为黑色。因此,如果您没有在堆栈中设置任何其他背景颜色,它们都将是透明的。

不为UIViewController的视图设置合适的背景颜色也会在转换过程中产生奇怪的视觉效果。

答案 2 :(得分:3)

tableView.contentOffset = CGPointMake(0, searchBar.bounds.size.height);

答案 3 :(得分:0)

这些天不确定背景颜色是否设为白色。 因此,如果以编程方式创建视图控制器

在viewDidLoad / viewWillAppear中获取白色背景颜色

view.backgroundColor = UIColor.whiteColor()