在我的应用中,我想在IBAction
方法中调用viewDidLoad
方法。我这样叫[self myContest:nil];
。当我点击IBAction
方法时它工作正常,但最初启动屏幕它不起作用。
最初我的屏幕是这样的,
这是IBAction代码,
-(IBAction)myContest:(id)sender
{
value = 0;
[tableViewContest reloadData];
if(str.length > 0)
{
NSData* data = [str dataUsingEncoding:NSUTF8StringEncoding];
}
}
问题是什么?任何帮助。
答案 0 :(得分: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():
}
答案 1 :(得分:0)
首先如果你想在ViewDidLoad中调用它,你必须更改它,因为你不能直接调用IbAction方法来查看iddidload
-(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 :(得分:-1)
一种方法是只创建该按钮的IBOutlet
@property (weak, nonatomic) IBOutlet UIButton *btn
然后以编程方式点击该按钮的点击事件。
- (void)viewDidLoad {
[super viewDidLoad];
[btn sendActionsForControlEvents:UIControlEventTouchUpInside];
}
答案 3 :(得分:-1)
您必须以编程方式将触摸事件假冒到viewdidload中的UIButton
[buttonObj sendActionsForControlEvents: UIControlEventTouchUpInside];