В настоящее время у меня есть 2 отдельных вида с отдельными контроллерами представлений в редакторе IB. В основном я хочу установить значение переменной (в моем случае это float, представляющий то, что я буду устанавливать как таймер), который основан на кнопке, которая нажата в первом контроллере представления, затем передайте эту переменную второму просмотрите контроллер. Проблема, которую я придумываю, состоит в том, что, поскольку набор переменных основан на UISegmentedControl, который нажат в первом представлении, это не так, как будто я могу создать экземпляр первого класса во втором классе, потому что это не спасло бы какую кнопку был нажат. Правильно? Итак, я попытался установить свою переменную в первом классе как статическую переменную, а затем сделать мой второй класс подклассом первого класса и получить доступ к переменной таким образом. К сожалению, я задал переменную в первом классе, но когда я обращаюсь к ней со второго (дочернего) класса, она по умолчанию возвращает значение 0. Это неверно. Похоже, что инкапсуляция данных вызывает это?Установите переменную в один контроллер View и получите доступ к нему в другом контроллере просмотра на основе нажатой кнопки
Короче говоря, я просто хочу, чтобы у меня была возможность установить переменную в моем диспетчере viewController на основе нажатой кнопки, а затем использовать эту переменную и получить доступ к ней в моем втором классе viewController.
Я также хотел бы получить краткое объяснение того, почему доступ к переменной из дочернего класса не работает. Любая часть, которая неясна, я сделаю все возможное, чтобы прояснить ситуацию. Заранее спасибо!
Пожалуйста, сделайте поиск, прежде чем задавать вопрос - некоторые версии этого вопроса задаются не реже одного раза в день на этом форуме. Попробуйте выполнить поиск «Установите переменную в один контроллер просмотра и получите доступ к ней в другом контроллере просмотра», и вы получите много результатов. – rdelmar
Да, спасибо, я исследовал его и пробовал, и он не работал так. Мои вопросы спрашивают, почему это не работает, как указано в других вопросах, и если есть лучший способ сделать это, чем то, что я сейчас пытаюсь сделать. – kyleC
Ваша проблема в том, что вам нужно получить ссылку на другой контроллер, а не, как вы указали, создать новый экземпляр. Как вы получаете эту ссылку, зависит от того, как связаны два контроллера. Создает ли один другой (а затем нажимает или присутствует в коде) или переходит к другому? Что касается вашего вопроса о доступе к переменной из дочернего класса, у вас есть основное недоразумение - у ребенка будет такая же переменная, но это будет другой экземпляр, поэтому он будет иметь свое собственное значение, которое будет равно 0 для int или nil для объекта, пока вы его не установите. – rdelmar