gpt4 book ai didi

ios - 调用自定义 Segue 类执行方法,操作不执行任何操作

转载 作者:行者123 更新时间:2023-12-01 19:12:04 25 4
gpt4 key购买 nike

我正在尝试在 ViewController 之间创建自定义转场。 (第一 View )和BrowserController (第二种观点)。

目前我有...

CustomSegue.h:

#import <UIKit/UIKit.h>

@interface CustomSegue : UIStoryboardSegue

@end

CustomSegue.m:
    #import "CustomSegue.h"

@implementation CustomSegue

- (void)perform {

NSLog(@"Perform Method Running");

UIViewController *ViewController = (UIViewController *) self.sourceViewController;
UIViewController *BrowserController = (UIViewController *) self.destinationViewController;

NSLog(@"Starting duration...");

[UIView transitionWithView:ViewController.navigationController.view duration:0.2
options:UIViewAnimationOptionTransitionFlipFromLeft
animations:^{

NSLog(@"Animation section");

[ViewController.navigationController pushViewController:BrowserController animated:NO];

}
completion:NULL];

NSLog(@"Performance Method Completion");

}

当我单击按钮转到下一个 View 时,什么也没有发生。

我将 View segue 设置为“自定义”(CTRL 拖动)并将我的类定义为“CustomSegue”。我看到在 CTRL 和拖动之后有两个“自定义”选项可供选择——我已经尝试了这两个选项以防万一(我两次都重新定义了我的类),但问题仍然存在。我还使用了 NSLog看到 perform方法被调用,我没有错误,但按钮仍然没有执行下一个 View 的转场(或任何转场)。

触发segue的按钮
- (IBAction)browserButton:(id)sender

这是我可以将其缩小到的最后一个区域...我需要在此 IBAction 中添加任何内容吗?告诉它使用新的segue?

最佳答案

Xcode 告诉你的是完全正确的:self (当然是 CustomSegue 类型)都没有 ViewController也不是 BrowserController属性(property)。这是因为您没有在 CustomSegue 中声明这些属性。类及其基类UIStoryboardSegue也没有。

您可以尝试两种解决方案 - 直接使用内置属性,或者使用您想要的名称将它们包装在属性中。

这是第一种方法:

UIViewController *ViewController = (UIViewController *) self.sourceViewController;
UIViewController *BrowserController = (UIViewController *) self.destinationViewController;

这是第二种方法:
-(UIViewController*) ViewController {
return self.sourceViewController;
}
-(UIViewController*) BrowserController {
return self.destinationViewController;
}

第一种方法实现起来更快,但它可能不太可读。第二种方法需要更多的输入,但它为源 Controller 和目标 Controller 提供了更好地描述它们在应用程序中的角色的名称。这个选择由你。

关于ios - 调用自定义 Segue 类执行方法,操作不执行任何操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15891558/

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