Я хочу скрыть свой IBOutlet. Однако установка текста в строку empy отлично работает, но когда я получаю непосредственно свой IBOutlet, я все время получаю ошибку, которая «неожиданно обнаружила нуль при разворачивании необязательного значения».Swift: Как установить IBOutlet с другого контроллера?
Я попытался установить свой IBOutlet в локальный varialble, но он также дает ошибку. Я подготовил некоторые фрагменты кода, не относящимися к линиям удаленных только лучше выставить мою проблему без предоставления слишком много коды:
PageContentViewController
@IBOutlet weak var LabelTop: UILabel!
var Test:UILabel!
override func viewDidLoad() {
super.viewDidLoad()
self.LabelTop = self.Test
}
PageViewController
func viewControllerAtIndex(index: Int)-> PageContentViewController?{
if((self.pageTitles.count == 0) || (index >= self.pageTitles.count))
{
return nil
}
var pageContentViewController: PageContentViewController = self.storyboard!.instantiateViewControllerWithIdentifier("PageContentViewController") as! PageContentViewController
pageContentViewController.imageFile = self.pageImages[index]
pageContentViewController.titleText = self.pageTitles[index]
pageContentViewController.pageIndex = index
if(index == 2){
pageContentViewController.Test.hidden = true
}
else {
pageContentViewController.Test.hidden = false
}
return pageContentViewController
}
программы падает при попытке для доступа к инструкции UIlabel in if. Очевидно, как я уже говорил, я могу легко получить доступ к текстовому свойству и установить его в пустую строку, но мне интересно, почему IBOutlet недоступен таким образом.
Заранее благодарен!
Теперь ошибка возникает в self.Test.hidden = isHidden – DCDC
@DCDC, какую ошибку вы получаете? Вы создали тестовую метку? Я вижу, что LabelTop является Outlet, поэтому вы добавили его в IB, но Test не IBOutlet, поэтому я предполагаю, что вы создали его перед запуском viewDidAppear. – Greg
Хорошо, эта тестовая переменная - это то, что бесполезно. Когда я получаю доступ к UIlabel непосредственно self.LabelTop ошибка больше не происходит – DCDC