Viewcontroller представления должны отображаться очень медленно

Кажется, у меня возникла совершенно противоположная проблема, которая всплывает в моих поисках вопросов. У меня есть splitViewController, который, кажется, медленно обновляет свое главное представление после вызова setNeedsDisplay. В конце концов, запрос на обновление отрисовывается, но случайным образом происходит изменение от 5 до 150 секунд.

Если я немедленно поверну iPad, изменения в представлении будут немедленно отражены.

Макет:

SVC - Detail VC
    \
     +-Navigation VC
                  \
                   MasterVC
                         +--UILabel (hidden/unhidden)
                         |
                         +--UIButton

Все, что я хочу сделать, это скрыть / показать метку в MastVC, когда действие происходит в MasterVC. На viewDidLoad метка скрыта. Когда на MasterVC нажимают кнопку, ярлык становится невидимым, и тогда все просто не идет.

Я установил все под солнцем на "setNeedsDisplay", но ничто не заставляет это произойти так быстро, как должно. Если я даже запихнул все методы setNeedsDisplay в dispatch_async(dispatch_get_main_queue(), ^{ ... }, немедленных результатов нет (не то, чтобы я был в другом потоке, но после прочтения подобного было бы неплохо попробовать) вопросы).

Я сделал эти вызовы от SplitVC, NavVC, Master, каждого subVC, каждого subView, я даже настроил вызов Центра уведомлений от Master к SVC, чтобы SVC выполнял обновление специально после того, как метка была помечена как скрытая,

Все это начало казаться крайне неуместным, просто чтобы показать / скрыть простой ярлык. Особенно, когда все, что мне нужно сделать, чтобы ярлык появился правильно, это просто повернуть iPad.

Как я уже сказал, метка в конечном итоге отображается в правильном месте, поэтому она не находится за кадром или непрозрачна = 0 или что-то в этом роде.

Когда я нажимаю кнопку подключения, я звоню в Bluetooth Central Manager. Как только BCM подключается к устройству, я получаю ключ / значение NC, который подтверждает подключение. Это вызывает ярлык, чтобы быть unhid.

-(void) receiveBCMNotification: (NSNotification *) notification {

NSDictionary *userInfo = notification.userInfo;

NSLog(@"got a BCM notice: %@",userInfo);
if ([[userInfo allKeys] containsObject:ddkBltCentralManagerStatusKey]) {
    if ([[userInfo valueForKey:ddkBltCentralManagerStatusKey] isEqualToString:ddvBltCentralMangerScanningStarted]) {
        [self.refreshAvailablePatches beginRefreshing];
    }
    if ([[userInfo valueForKey:ddkBltCentralManagerStatusKey] isEqualToString:ddvBltCentralMangerScanningEnded]) {
        [self.refreshAvailablePatches endRefreshing];
        [self.availablePatchesTableView reloadData];
    }
    if ([[userInfo valueForKey:ddkBltCentralManagerStatusKey] isEqualToString:ddvBltCentralMangerDeviceConnected]) {
        self.connectedToPatchVisual.hidden = NO;
        [self.view setNeedsDisplay];
        NSDictionary *newInfo = [NSDictionary dictionaryWithObject:ddvMasterSideViewNeedsDisplay forKey:ddkMasterSideViewNeedsDisplay];
       [[NSNotificationCenter defaultCenter] postNotificationName: ncMasterSideNotifications object:nil userInfo:newInfo];

    }
}

}

0 ответов

Другие вопросы по тегам