Я написал код, который отлично работает в симуляторе, но не работает на устройстве. Я назначил 4 панели управления представлением на вкладке, а следующий код - для HomeScreen, который назначается в качестве первого контроллера представления на вкладке. Он падает в первой строке viewdidload().«Неустранимая ошибка: неожиданно найден nil во время разворачивания необязательного значения» при назначении диспетчеров просмотров на вкладку
, когда я удаляю все из viewdidload(), он работает.
class HomeScreen: UIViewController {
var tableView: UITableView!
@IBOutlet weak var imgLine:UIImageView!
@IBOutlet weak var btnActiveDeals:UIButton!
@IBOutlet weak var btnActiveClaims:UIButton!
@IBOutlet weak var btnNearByDeals:UIButton!
@IBOutlet weak var horizontalSpaceConstraint:NSLayoutConstraint!
@IBOutlet weak var tblMain:UITableView!
var mydeals : MyDealsViewController!
override func viewDidLoad() {
super.viewDidLoad()
btnActiveDeals.titleLabel?.adjustsFontSizeToFitWidth = true
btnActiveDeals.titleLabel?.minimumScaleFactor = 0.5
btnActiveDeals.autoresizesSubviews = true
btnActiveClaims.titleLabel?.adjustsFontSizeToFitWidth = true
btnActiveClaims.titleLabel?.minimumScaleFactor = 0.5
btnActiveClaims.autoresizesSubviews = true
btnNearByDeals.titleLabel?.adjustsFontSizeToFitWidth = true
btnNearByDeals.titleLabel?.minimumScaleFactor = 0.5
btnNearByDeals.autoresizesSubviews = true
tblMain.backgroundView = nil
tblMain.backgroundColor = UIColor.clearColor()
}
Код для назначения главного экрана на вкладке приведен ниже.
let centerViewController1 = HomeScreen(nibName: "HomeScreen", bundle: nil)
let centerViewController2 = HomeScreen(nibName: "HomeScreen", bundle: nil)
let centerViewController3 = HomeScreen(nibName: "HomeScreen", bundle: nil)
let centerViewController4 = HomeScreen(nibName: "HomeScreen", bundle: nil)
tabBarController = UITabBarController()
var controllers = [centerViewController1,centerViewController2,centerViewController3,centerViewController4]
tabBarController.viewControllers = controllers
tabBarController.tabBar.tintColor = UIColor.whiteColor()
Прослушайте меня. Заранее спасибо.
Используйте контрольные точки и посмотрите, какая строка возвращает эту ошибку. – Cesare
Если вы используете раскадровку, почему вы создаете tabBarController = UITabBarController()? – Amit89
@CeceXX ошибка находится на первой строке viewdidload .. btnActiveDeals.titleLabel? .adjustsFontSizeToFitWidth = true Это прекрасно работает в симуляторе, и как только я прокомментирую весь viewdidload, он идет дальше. есть ли проблема с распределением кнопок и табличного просмотра? –