2016-04-29 60 views
-1

在我的應用程序中,我想調用IBAction方法viewDidLoad方法。我打電話給[self myContest:nil];這樣。當我點擊IBAction方法它工作正常,但最初啓動它不工作的屏幕。IBAction方法不調用viewDidLoad方法?

最初我的屏幕上這個樣子,

enter image description here

這裏是IBAction爲準則,

是什麼問題?任何幫助。

+0

定義「沒有要求」完全相同。如果你在'myContest:'上放了一個'NSLog()'或一個斷點,你會看到這個調用嗎?你怎麼知道它在工作? – Larme

+0

@Larme它打電話,但沒有顯示任何東西。 –

+0

它應該顯示什麼? – Larme

回答

0

IBAction被要求採取行動。爲了達到您的要求,您可以使用您要執行的代碼創建一個功能,然後從viewDidLoad()方法以及從IBAction()方法中調用此功能。

void doTask() { 
    value = 0; 
    [tableViewContest reloadData]; 
    if(str.length > 0) 
    { 
     NSData* data = [str dataUsingEncoding:NSUTF8StringEncoding]; 
    } 
} 

現在調用從任何你想喜歡這個功能:

-(IBAction)myContest:(id)sender { 
    doTask(): 
} 

- (void)viewDidLoad:(BOOL)animated { 
    doTask(): 
} 
+0

我會盡力告知你。 –

+0

對不起,沒有與此工作 –

+0

有什麼問題?你嘗試調試這個問題嗎? –

0

首先,如果你想它調用viewDidLoad中,你必須改變它,因爲你不能調用一個IbAction方法直接查看數據加載

-(IBAction)myContest:(id)sender

-(void) myContest

,那麼你就可以調用它viewDidLoad方法

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    // Do any additional setup after loading the view, typically from a nib. 
    [self myContest]; 

} 
+2

這應該如何解決作者問題?你可以從代碼中調用一個'IBAction'。 – Larme

-1

的一種方法是,僅僅創建按鈕

@property (weak, nonatomic) IBOutlet UIButton *btn

IBOutlet

,然後以編程方式觸發該按鈕的單擊事件。

- (void)viewDidLoad { 
    [super viewDidLoad]; 
    [btn sendActionsForControlEvents:UIControlEventTouchUpInside]; 
} 
-1

你必須在你的viewDidLoad編程假的觸摸事件,以一個UIButton

[buttonObj sendActionsForControlEvents: UIControlEventTouchUpInside]; 
+0

你不必「假摸」。 – Larme