如何在 viewDidLoad 中调用 IBAction?

Posted

技术标签:

【中文标题】如何在 viewDidLoad 中调用 IBAction?【英文标题】:How can I call an IBAction in the viewDidLoad? 【发布时间】:2013-10-18 19:24:47 【问题描述】:

我有一个简单的滑块应用程序。更改滑块时,新值将显示在 UILabel 中。效果很好!

当该视图被加载时,虽然标签是空白的。我希望sliderValue.text 等于默认滑块值。

这是我现在的代码(以及我之前的尝试):

-(IBAction)sliderValue:(UISlider *)sender 
    sliderLabel.text = [NSString stringWithFormat:@"%g", roundf(slider.value)];


- (void)viewDidLoad

    [super viewDidLoad];
    // Do any additional setup after loading the view.
    -(IBAction)sliderValue:(id)sender;    

有人可以帮帮我吗?

谢谢!

【问题讨论】:

【参考方案1】:

如果您不需要 sender 作为操作的 in 参数,也只需调用 [self sliderValue:nil];,您可以在为 ios 开发时省略它们。

- (IBAction)sliderValue 


更好(在我看来)是直接在viewDidLoad 中设置值,以防您稍后将内容添加到sliderValue 方法。这确实是两件不同的事情,一个应该处理滑块更改值的逻辑,而奇怪的只是设置默认值。

sliderLabel.text = [NSString stringWithFormat:@"%g", roundf(slider.value)];

【讨论】:

我明白了,我没想到!代码中的小错误。您使用了 ;在代码的第一位;)【参考方案2】:

在 viewDidLoad 中使用 [self sliderValue:nil];

【讨论】:

以上是关于如何在 viewDidLoad 中调用 IBAction?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 viewDidLoad 中调用 IBAction?

iOS:如何知道 viewDidLoad 是不是被调用?

如何使 SwrevealViewController 的 viewDidLoad 只调用一次

如何在 [self dismissModalViewControllerAnimated:YES] 之后调用 viewDidLoad;

在 viewDidLoad 之前调用 ViewController 上的自定义 init 方法

我总是必须在 -viewDidLoad 方法中调用 [super viewDidLoad] 吗?