Как да изберете променлива на екземпляр в отделен UIViewController без да използвате Segue

Опитвам се да избера и задам променлива на екземпляр, която е част от друг UIViewController, но не знам как да избера друг ViewController и да получа достъп до съдържанието му, без да използвам segue.

Всеки път, когато потребител отметне задача, трябва да се изчисли процентът на задачите, които са изпълнени, и трябва да се зададе друга променлива на екземпляр на контролера на изгледа.

Осъзнавам, че в момента създавам нов контролер за изглед, вместо да избера този, който вече имам в сценария. Използвам меню на страничната лента на трета страна, което се намира зад основния ми изглед, въпреки че наистина съществува като отделен Scene/ViewController. Трябва да се отбележи, че това меню на страничната лента не използва самото разкриване на последователност. Има ли някакъв метод за избор на друг контролер за изглед и достъп до неговите променливи на екземпляр?

@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)
}

person 10000RubyPools    schedule 24.09.2015    source източник
comment
Как се създава съществуващата sideBarScene? Може ли обектът, който го е създал, да запази препратка и да я предостави на този код? Ако не, разгледайте NSNotification като начин за комуникация между несвързани обекти.   -  person Phillip Mills    schedule 24.09.2015
comment
sideBarScene е просто UIViewController в разкадровката с идентификатор sideBarScene.   -  person 10000RubyPools    schedule 24.09.2015
comment
Но нещо трябва да причини инициализиране на обекта в рамките на работещото приложение.   -  person Phillip Mills    schedule 24.09.2015


Отговори (1)


Един трик може да бъде да откриете текущия видим контролер за изглед и да зададете свойства за него. Тази тема може да ви помогне да направите това.

Друг начин може да бъде да се хване обект на целеви контролер за изглед, когато той е инициализиран от сценария. За това ще трябва да разчитате на метода prepareForSegue:sender:. След като сте запазили обекта, можете да го предадете и да го използвате, за да зададете свойствата.

person Abhinav    schedule 24.09.2015