IOS/Objective-C:调用另一个类(VC)方法不起作用

Posted

技术标签:

【中文标题】IOS/Objective-C:调用另一个类(VC)方法不起作用【英文标题】:IOS/Objective-C: call of another class(VC) method not working 【发布时间】:2017-03-30 10:05:55 【问题描述】:

我已经搜索并搜索了这个问题的答案,我发现的解决方案似乎不起作用,所以我想我做错了什么:我想调用这个方法

-(void)customFade:(UILabel *)theLabel withDelay:(float)delayAmount 

    [UIView animateWithDuration:0.5
                          delay:delayAmount
                          options:UIViewAnimationOptionCurveEaseInOut
                          animations:^
                          [theLabel setAlpha:1.0f];
                          [theLabel setAlpha:0];
                          completion:nil];

从一个名为 View Controller 的 VC 到另一个,但尽管导入了它,但它没有被识别...这是我在所需 VC 上尝试的内容:

- (void)viewDidLoad 
    [super viewDidLoad];
    ViewController *ViewController = [[ViewController alloc] init];

    [ViewController customFade:_label withDelay:0.3];
 

警告说““ViewController”没有可见的@interface声明选择器分配

有人可以帮帮我吗?我是新手,谢谢

【问题讨论】:

你是从UIViewController继承ViewController吗? “ViewController”是否有 xib 或内部故事板? 检查是否在ViewController类的接口文件(.h文件)中声明了这个方法。您可能需要在 ViewController 类的接口文件中公开该方法才能访问它 【参考方案1】:

当您输入错误的方法名称,或者该方法根本不属于该类并且在您的类中不存在时,通常会发生此类错误。

并确保一旦你的 VC 是 UIViewController 的子类

@interface ViewController : UIViewController

更改您的实例对象类型并检查一次

  ViewController *vc = [[ViewController alloc] init];

  [vc customFade:_label withDelay:0.3];

然后像这样改变动画

[UIView animateWithDuration:0.5
                      delay:delayAmount
                      options:UIViewAnimationOptionCurveEaseInOut
                      animations:^
                      [theLabel setAlpha:1.0f];

                      completion:
                     [theLabel setAlpha:0];
       ];

有关更多信息,您可以从here获得参考

【讨论】:

就是这样 (vc)...感谢 Anbu 和所有其他人的提示 :)

以上是关于IOS/Objective-C:调用另一个类(VC)方法不起作用的主要内容,如果未能解决你的问题,请参考以下文章

IOS / Objective-C / Storyboard:推送视图控制器的后退按钮未激活

IOS/Objective-C:导航栏自定义Segue效果对比Show Segue

VC++从一个窗体中调用显示另一窗体

如何在 iOS Objective-c 中实现交互式远程通知

MFC如何调用DLL(VC++)

IOS/Objective-C:调用完成块的语法