IOS / Objective-C / Раскадровка: определить, когда идет передача - PullRequest
0 голосов
/ 09 сентября 2018

Я использую стандартный переход "show" в раскадровке для перехода между двумя контроллерами представления.

Во втором ВК есть метод viewWillAppear, который запускает индикатор выполнения, который появляется во время перехода и портит его внешний вид.

Есть ли способ обнаружить, что переход продолжается, чтобы я мог отложить индикатор выполнения до тех пор, пока переход не будет завершен?

Я знаю, что мог бы переместить индикатор выполнения на более позднюю точку жизненного цикла второго контроллера представления, например viewDidAppear, но в большинстве случаев VC достигается без этого конкретного перехода, и я хотел бы, чтобы индикатор выполнения срабатывал немедленно. Однако в разгар сеанса я хотел бы отложить это.

Примечание: это сегменты садового разнообразия с анимацией в раскадровке, а не пользовательские сегменты.

1 Ответ

0 голосов
/ 09 сентября 2018

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

В FirstVC.m:

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
    // set segu identifier to SecondVC in StoryBoard        
    if ([segue.identifier isEqualToString:@"SecondVC"]) {
            SecondVC *secondVC = (SecondVC *)segue.destinationViewController;
            [secondVC fireProgressBar];
    }
}

В SecondVC.h:

#import <UIKit/UIKit.h>

@interface SecondVC : UIViewController
  -(void)fireProgressBar;
@end

В SecondVC.m:

#import "SecondVC.h"

@implementation SecondVC

- (void)viewDidLoad {
    [super viewDidLoad];
}

-(void)fireProgressBar {
    NSLog(@"Progress Bar Fired!!!");
}

@end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...