【问题标题】:iPhone - Linking touch events to different classes/controllersiPhone - 将触摸事件链接到不同的类/控制器
【发布时间】:2010-08-30 02:10:32
【问题描述】:

我在一个名为 SliderCell 的自定义 UITableViewCell 中有一个 UISlider。

我在 SliderCell 中有一个方法可以更新 UILabel 以匹配滑块的值。

- (IBAction)sliderChanged:(id)sender;

我在 viewController 中有相同的方法,它在它的表中使用 SliderCell。根据滑块的值,我想重新加载一个 NSDictionary。

当我将 UISlider 链接到 SliderCell 的方法时,它可以工作。 当我将 UISlider 链接到 viewController 的方法时,它会导致应用程序崩溃,甚至不会在方法的开头显示 NSLOG。

我通过简单地将我的 viewController 类拖到我的 SlideCell nib 中来将 UISlider 链接到 viewController。应用程序是否尝试初始化另一个 viewController 实例?

如何正确链接?

【问题讨论】:

    标签: iphone objective-c cocoa-touch uislider


    【解决方案1】:

    我认为您需要将您的声明更改为:

    -(IBAction) yourSliderValueChanged: (UISlider *) sender
    

    然后将动作连接到滑块。

    【讨论】:

      【解决方案2】:

      您是否将 UISlider 连接到 viewController 中的 IBAction 方法?这就是你真正需要做的所有事情

      【讨论】:

      • 当我说“链接”时,我的意思是连接。连接到两者后,我用鼠标触摸滑块,应用程序崩溃。
      • 从控制台发布输出。如果通过链接你的意思是连接 IBOutlets,一个未连接的插座不应该导致崩溃,所以其他事情正在发生。发布代码和控制台输出。
      • 我不是在谈论 IBOutlets。我将 UISlider 连接到两个不同类中的 2 个 IBAction。它在控制台中没有任何输出而崩溃。我确实找到了一种解决方法,而是将 SliderCell 放在它自己的 nib 中,我将它放在 ViewController 的 nib 中并且它停止了崩溃。
      【解决方案3】:

      正确的方法是忘记界面生成器,只用编程方式完成所有操作!!

      SEL action = @selector(someAction:);
      [myUISlider addTarget:self action:action forControlEvents:UIControlEventValueChanged];
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2015-08-10
        • 1970-01-01
        • 2010-12-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-04-05
        相关资源
        最近更新 更多