2014-07-25 82 views
0

我有一個方法在我的ViewController打開不同的視圖基於一個引腳存在,當它分配到一個按鈕初始視圖時,我也可以把它放在viewDidLoad方法,但我是使用故事板和這種方法viewDidLoad是從模態賽格每個視圖負載觸發,所以相反,我正在從我的appDelegate didFinishLaunchingWithOptions調用方法。 這基本上是一個基於存儲的引腳值存在的應用程序啓動視圖重定向。從應用程序委託調用ViewController方法

我已經進口#import "ViewController.h" 然後使用didFinishLaunchingWithOptions當前代碼的應用程序代理視圖控制器:

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

我這樣做,但我得到的錯誤

爲「視圖控制器」不可視界面聲明選擇器'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 
    } 
} 

如何正確申報我initView方法在我ViewController.h任何想法文件來糾正這個錯誤? 感謝

回答

1

你需要一個參數添加到這個方法,如:

[rootViewController initView:nil]; 
+0

謝謝,多數民衆贊成正是我需要什麼 –

1

-(IBAction)initView:(id)sender期待一個參數。

有兩種方法可以解決這個問題。

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

  • 通零或AppDelegate從主叫方法

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

相關問題