作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我刚接触 iOS 和 Objective-C。我正在学习如何使用 Segue,尤其是 Unwind Segue。
在阅读时,我对“shouldPerformSegueForIdentifier”和“performSegueForIdentifier”的用法感到有点困惑。
我创建了一个包含两个“ViewController”、“ViewController.m”的示例,如“VC_1”和“ServiceViewController”下面发布的代码所示
我的问题是:
-何时以及如何使用“performSegueForIdentifier”
-何时以及如何使用“shouldIPerformSegueForIdentifier”?
VC_1:
#import "ViewController.h"
#import "ServiceViewController.h"
@interface ViewController ()
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a
nib.
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
-(IBAction)btnStartService:(UIButton *)sender {
if (sender.tag == 1) {
NSLog(@"CLICKED");
[self performSegueWithIdentifier:@"seguePassInterval" sender:(id)
sender];
}
}
-(IBAction)btnExitApp:(UIButton *)sender {
NSLog(@"EXIT_CLICKED");
}
- (void) prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if ([segue.identifier isEqualToString:@"seguePassInterval"]) {
((ServiceViewController*)segue.destinationViewController).data = @"testData"; //passing data to destinationViewController of type "TestViewController"
NSLog(@"SEGUE");
}
}
@end
img
最佳答案
prepareForSegue
方法在 segue 执行之前调用,并允许在 ViewController
之间传递数据等等,您可以通过示例检查您的标识符是否segue 是“XxX”并传递一些数据,或者如果是“YYY”则调用方法
- (void) prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if ([segue.identifier isEqualToString:@"seguePassInterval"]) {
((TestViewController*)segue.destinationViewController).data = @"testData"; //passing data to destinationViewController of type "TestViewController"
NSLog(@"SEGUE");
}
}
方法performSegueWithIdentifier
用于使用他的标识符执行segue,你可以在需要时执行segue
最后,shouldPerformSegue
用于避免在您的应用处于某种状态时执行转场,例如,如果您还没有 destinationViewController
数据,您可以返回false 直到你得到那个
希望对你有帮助
关于ios - 如何为标识符使用 PerformSegue,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45467548/
我是一名优秀的程序员,十分优秀!