Я пытаюсь выбрать и установить переменную экземпляра, которая является частью другого UIViewController, однако я не знаю, как выбрать другой ViewController и получить доступ к его содержимое без использования segue.Как выбрать переменную экземпляра в отдельном UIViewController без использования Segue
Всякий раз, когда пользователь выполняет проверку задачи, необходимо вычислить процент выполненных задач и задать переменную экземпляра другого контроллера.
Я понимаю, что в настоящий момент я создаю новый контроллер представлений вместо того, чтобы выбрать тот, который у меня уже есть на раскадровке. Я использую стороннее меню боковой панели, которое находится за моим основным видом, хотя оно действительно существует как отдельный Scene/ViewController. Следует отметить, что в этом меню боковой панели не используется раскрытие segue. Есть ли какой-либо метод для выбора другого контроллера представления и доступа к его переменным экземпляра?
@IBAction func checkOffTask(sender: UIButton) {
// Select sidebar view controller
let sidebarViewController = self.storyboard?.instantiateViewControllerWithIdentifier("sideBarScene") as! SideBarViewController
// Calculate percentage of completed tasks
// Select the count of all tasks
let allTasksCount = Float(firstDataSource.count + secondDataSource.count)
// Select the count of all completed tasks
let completedTasksCount = Float(secondDataSource.count)
// Divide the two to get a percentage
var completedTaskPercentage = completedTasksCount/allTasksCount
sidebarViewController.completedTaskPercentageTemporary = String(stringInterpolationSegment: completedTaskPercentage)
println(sidebarViewController)
println(sidebarViewController.completedTaskPercentageTemporary)
}
Как создается существующая «sideBarScene»? Может ли созданный объект сохранить ссылку и предоставить ее этому коду? Если нет, рассмотрите NSNotification как способ связи между несвязанными объектами. –
sideBarScene - это просто UIViewController на раскадровке с идентификатором «sideBarScene». – 10000RubyPools
Но что-то должно заставить объект быть инициализированным в запущенном приложении. –