【问题标题】:Perform different function based on button that activates UIImagePickerController根据激活 UIImagePickerController 的按钮执行不同的功能
【发布时间】:2016-11-03 20:51:07
【问题描述】:

我有两个按钮,每按一下,就会出现一个UIImagePickerController

我可以很好地选择和检索照片。但是,我想根据哪个按钮启动操作来做一些不同的事情。

有没有办法确定是哪个按钮导致最初的UIImagePickerController 出现在didFinishPickingImage 调用中?

【问题讨论】:

    标签: ios objective-c uiimagepickercontroller


    【解决方案1】:

    没有魔法。您需要以某种方式保存您的状态,并在调用委托方法时确定您的状态并采取相应措施。最简单的方法是向控制器添加属性或实例变量,并为每个按钮使用唯一值(例如枚举)对其进行更新。

    【讨论】:

      【解决方案2】:

      您可以为这两个按钮分配标签属性,然后在创建 UIImagePickerController 实例时,您可以将触摸按钮的按钮标签属性分配给 UIImagePickerController 实例的 picker.view.tag 属性。

      然后在 UIImagePickerController 的委托回调中,您可以检查选取器的 view.tag 属性以确定在创建 uiimagepickercontroller 时触摸了哪个按钮

      mybutton.tag = 100;
      [myButton addTarget:self action:@selector(displayTheUIImagePickerController:)     forControlEvents:UIControlEventTouchUpInside];
      
      
      
      -(void)displayTheUIImagePickerController:(id)sender
      {
          NSInteger buttonTag = [sender tag];
      
          UIImagePickerController *picker = [[UIImagePickerController alloc] init];
          picker.view.tag = buttonTag;
      
      //Finish setting up picker controller and then present
      }
      
      
      
      - (void)imagePickerController: (UIImagePickerController *)picker
          didFinishPickingImage: (UIImage *)i
                    editingInfo: (NSDictionary *)editingInfo {
      
          NSInteger buttonTag = picker.view.tag;
      
      
          switch (buttonTag) {
              case 100:
                  //Do something for button with tag 100
                  break;
      
              case 101:
                  //Do something for button with tag 101
                  break;
      
              default:
                  break;
          }
      
      }
      

      【讨论】:

      • 这听起来像是在滥用标签系统。有更优雅的方法可以实现这一点。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-10-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-04-30
      • 2013-03-05
      相关资源
      最近更新 更多