ios - IOS/Objective-C/Storyboard: 检测何时进行显示 segue
问题描述
我在故事板中使用标准的“显示”segue 在两个视图控制器之间进行转换。
在第二个 VC 中,有一种方法viewWillAppear
可以触发在 segue 期间出现的进度条并破坏其外观。
有什么方法可以检测到 segue 正在进行中,以便我可以将进度条延迟到 segue 完成之后?
我知道我可以将进度条移动到第二个视图控制器生命周期的稍后时间点,例如,viewDidAppear
但在大多数情况下,没有这个特定的 segue 就可以到达 VC,我希望进度条立即触发。但是,如果在转场中,我想推迟它。
注意:这些是在 Storyboard 中带有动画的花园综艺节目 Segues,而不是自定义 segues。
解决方案
您可以定义一个公共方法来触发进度条并从第一个 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
推荐阅读
- android - 使用android studio中的导航抽屉在工具栏中的微调器下拉列表
- java - 有没有办法将数据从 Java 步骤定义类发送到 Cucumber 框架中的功能文件?
- java - Java中的家庭作业问题,涉及数组
- javascript - 删除所有数组索引元素
- python - 随机森林中的超参数调整
- c++ - char 变量的范围是多少?-127 到 127 还是 0 到 255?
- ruby-on-rails - 您的 Ruby 版本是 2.3.1,但您的 Gemfile 指定了 2.5.1
- kubernetes - 在 Windows 机器上从源代码构建 Kubernetes
- permissions - umask 对 GUI 与 ssh shell 计算方式不同的新文件的权限?
- java - 如何指定具有最大位数的 BigInteger 类型的 BigInteger?