【问题标题】:Call ViewController method from App Delegate从 App Delegate 调用 ViewController 方法
【发布时间】:2014-09-16 18:56:52
【问题描述】:

我的 ViewController 中有一个方法可以根据存在的引脚打开不同的视图,当分配给初始视图上的按钮时它可以工作,我也可以将它放在 viewDidLoad 方法中,但是我使用的是故事板和这个方法 viewDidLoad正在从模态序列中触发每个视图加载,因此我希望从我的 appDelegate didFinishLaunchingWithOptions 调用该方法。 它基本上是基于存储的 pin 值在应用启动时的视图重定向。

我已经在应用委托#import "ViewController.h" 中导入了视图控制器 然后在 didFinishLaunchingWithOptions 中使用当前代码:

ViewController *rootViewController = (ViewController*)self.window.rootViewController;
[rootViewController initView];

我这样做了,但我得到了错误

“ViewController”没有可见界面声明选择器“initView”?

这是我的完整 ViewController.h

#import <UIKit/UIKit.h>

@interface ViewController : UIViewController {

IBOutlet UITextField *emailField;
IBOutlet UITextField *passwordField;
IBOutlet UITextField *pinField;
IBOutlet UITextField *checkPin;

}

@property (nonatomic, strong) IBOutlet UIWebView *webView;
@property (strong, nonatomic) IBOutlet UIBarButtonItem *ShowEmailList;
-(IBAction)showList:(id)sender;

-(IBAction)checkPin:(id)sender;
-(IBAction)initView:(id)sender;

@end

在我的 ViewController.m 文件中方法:

-(IBAction)initView:(id)sender {
    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
    NSString *getPin = [defaults objectForKey:@"Pin"];
    if ([getPin isEqualToString:@""]){
        //do something
    }else{
        //do something else
    }
}

关于如何在我的 ViewController.h 文件中正确声明我的 initView 方法以纠正此错误的任何想法? 谢谢

【问题讨论】:

    标签: ios objective-c uiviewcontroller


    【解决方案1】:

    您需要为此方法添加一个参数,例如:

    [rootViewController initView:nil];
    

    【讨论】:

    • 谢谢,这正是我需要的
    【解决方案2】:

    您的-(IBAction)initView:(id)sender 需要一个参数。

    您有两种方法可以解决此问题。

    • 将你的方法签名修改为-(IBAction)initView { //source code. }

    • 从调用者方法传递 nil 或 AppDelegate

      [rootViewController initView:nil];[rootViewController initView:self];

    【讨论】:

      猜你喜欢
      • 2011-07-02
      • 1970-01-01
      • 2016-05-06
      • 1970-01-01
      • 1970-01-01
      • 2012-08-22
      • 1970-01-01
      • 1970-01-01
      • 2023-03-03
      相关资源
      最近更新 更多