我正在堆栈溢出中搜索此问题,但无法得到问题的确切答案,我被困在其中很长一段时间。 我的问题是我试图通过导航控制器推送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)
}
答案 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()