gpt4 book ai didi

iphone - 在 XCode 4 中调用 segue 的正确方法是什么?

转载 作者:行者123 更新时间:2023-11-28 22:27:17 26 4
gpt4 key购买 nike

我正在做一个项目,在这个项目中我调用了几个 segues 而不是使用导航 Controller 。在我的项目的早期,我设置了一个模态转场,并从几个不同按钮的 IBAction 方法中调用它(我从不同的按钮调用相同的转场,因为我将字符串与转场一起传递)。

在我的 Storyboard中它看起来像这样:

UIButton with linked IBAction

Modal Segue with Custom Identifier

然后在我的代码中,我这样做:

-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
NSLog(@"Vimeo Segue");
if([segue.identifier isEqualToString:@"playVimeo"]) {
WebViewViewController *controller = (WebViewViewController *)segue.destinationViewController;
controller.vimeoURL = vimeoURL;
}
}

- (IBAction)launchCreativeFuture:(id)sender {
vimeoURL = @"72053500";
[self performSegueWithIdentifier:@"playVimeo" sender:sender];
}

这行得通,我对此很满意。然而……

我偶然发现了另一种执行此操作的方法,我很困惑为什么它们都有效,以及推荐使用哪种方法。

在这里,我根据这些图片添加了一个链接的 IBAction 和一个模态转场:

linked IBAction

modal segue identifier

我的代码是这样的:

-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
if([segue.identifier isEqualToString:@"pushToGraduateCourses"]) {
NSLog(@"Grad Segue");
UIViewController *controller = (UIViewController *)segue.destinationViewController;
}
}


- (IBAction)launchGraduate:(id)sender {
NSLog(@"Grad Button");
[self performSegueWithIdentifier:@"pushToGraduateCourses" sender:sender];
}

据我所知,在代码方面几乎完全相同......除了当我这样做时,我收到警告:“警告:在演示过程中尝试演示!” ...当我查看我的控制台时,“Grad Segue”被记录了两次...这是有道理的,但在我的第一个示例中,“Vimeo Segue”只被记录了一次。

我想我想问的是几个问题:

a) 谁能看出这两种方法之间的区别?因为我做不到。

c) 推荐哪种方式?

提前致谢

~杰西

最佳答案

一个。是的

B.是的,当您从按钮创建一个 segue 时,该按钮会调用 performSegueWithIdentifier。

C.在我看来,你应该尽可能多地在 Storyboard中进行 UI 设计,只有在你需要根据代码中的内容更新你的 UI 时才去编写代码。前任。如果用户是您应用中的管理员,您将希望转到与标准用户不同的设置页面。

关于iphone - 在 XCode 4 中调用 segue 的正确方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18553549/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com