代码之家  ›  专栏  ›  技术社区  ›  user6631314

IOS/Objective-C/Storyboard:检测正在播放的节目片段

  •  0
  • user6631314  · 技术社区  · 6 年前

    我正在使用一个标准的“显示”序列图像在两个视图控制器之间的转换。

    在第二个VC中,有一个 viewWillAppear 它触发一个进度条,该进度条在segue期间出现并破坏其外观。

    有没有什么方法可以检测到segue正在进行,这样我就可以将进度条延迟到segue完成之后?

    我知道我可以将进度条移动到第二个视图控制器生命周期的稍后点,例如 viewDidAppear 但在大多数情况下,VC是没有这个特定的segue,我想立即启动进度条。不过,如果在赛程中,我想推迟。

    1 回复  |  直到 6 年前
        1
  •  1
  •   Reza Dehnavi    6 年前

    您可以为启动进度条定义一个公共方法,并从第一个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