2016-04-29 2 views
-1

В моем приложении я хочу позвонить IBAction методу в viewDidLoad методе. Я звоню [self myContest:nil]; вот так. Когда я нажимаю на метод IBAction, он работает нормально, но изначально запускает экран, который он не работает.Метод IBAction не вызывает метод viewDidLoad?

первоначально мой экран, как это,

enter image description here

и вот IBAction код,

Что такое проблема? любая помощь.

+0

Определения «не называя» точно. Если вы поместите 'NSLog()' или точку останова на 'myContest:', вы видите вызов? Как вы должны знать, что он работает? – 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

Одним из способов является то, что просто создать IBOutlet этой кнопки

@property (weak, nonatomic) IBOutlet UIButton *btn

, а затем программным образом нажмите событие события этой кнопки.

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

Вы должны программно подделать сенсорное событие к UIButton в вашем viewdidload

[buttonObj sendActionsForControlEvents: UIControlEventTouchUpInside]; 
+0

Вам не нужно «подделывать прикосновение». – Larme

Смежные вопросы