Nano Hash - криптовалюты, майнинг, программирование

Кнопка iOS8 setEnabled не работает

Я только что загрузил iOS8 GM Seed и обнаружил, что мои UIButtons, которые setEnabled при покупке в приложении, не работают.

In

- (void)viewDidLoad

у меня есть

[mainToneBtn setEnabled:YES];

До iOS8 это обновляет кнопку, чтобы она была нажата, но не сейчас. Я не делал никаких изменений, связанных с этим, и при отладке код выше срабатывает. Никакой код не устанавливает его обратно в setEnabled: NO.

Есть идеи?

Спасибо.

14.09.2014

  • Вы устанавливаете их включенными в основном потоке? 14.09.2014
  • @Acey Да, эта проблема характерна для iOS8. 14.09.2014
  • @vacawama нет, но ваш ответ ниже работает. Спасибо! 21.09.2014

Ответы:


1

Я не могу воспроизвести вашу проблему. По какой-то причине кажется, что ViewDidLoad сейчас слишком рано в жизненном цикле ViewController, чтобы вы могли активировать свои кнопки. Я бы предложил попробовать включить их позже в ViewDidLayoutSubviews.

14.09.2014
  • Это работает для меня, спасибо! Но я до сих пор не понимаю, почему ios8 ведет себя иначе, чем ios7 и раньше. 21.09.2014
  • На самом деле размещение updateAllInAppPurchases в ViewDidLayoutSubviews оказалось для меня проблемой, так как у меня есть другие представления в этом viewController. Отображение любого другого представления вызывает загрузку ViewDidLayoutSubviews. Я хочу активировать updateAllInAppPurchases только один раз при загрузке. 21.09.2014
  • Добавьте логическое свойство или переменную экземпляра в свой класс с именем inAppPurchasesUpdated. Установите его на NO в ViewDidLoad. Перед вызовом метода обновления убедитесь, что он равен NO в ViewDidLayoutSubviews, а затем установите для него значение YES в методе обновления. 21.09.2014

  • 2

    Почему-то это работает,

    [self performSelector:@selector(updateAllInAppPurchases) withObject:nil afterDelay:0.001];
    

    код кнопки находится в updateAllInAppPurchases

    но я понятия не имею, почему я должен делать это в ios8. Я приму ответ любого, кто может дать мне хорошее объяснение, спасибо!

    14.09.2014
    Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..