1

我正在使用 UIImagePickerController 从我的应用程序中捕获视频,并且我已将视频最大持续时间设置为 30 秒。当达到 30 秒的限制时。我收到一条警报,其中包含UIImagePickerController 生成的消息“已达到最大视频录制限制” ,并且它停止捕获视频。

我想要的是响应达到 30 秒限制时自动生成的警报。当按下该警报的“确定”按钮时,我想执行一些操作。我已经实现了 UIAlertView 的所有委托方法,但是当我按下 OK 按钮时,它确实出现在任何方法中。

请帮助我如何响应该警报?

4

4 回答 4

2

你不能使用所有这些委托方法,因为你没有启动,UIAlertView所以你不能设置他的委托......

我唯一能想到的就是做一些事情,比如听听来UIWindowDidBecomeVisibleNotification检测何时显示警报,并通过UIWindowDidBecomeHiddenNotification通知来检测它何时消失。

您应该知道,这些通知将针对所有使用自己的组件(UIWindow例如UIActionSheet键盘)触发,因此您需要确保这是正确的通知(也许检查其中一个子视图中是否有 UIAlertView。 .)

于 2013-07-09T08:35:25.840 回答
1

将自己设置为您UIImagePickerController的代理,并实现UIImagePickerControllerDelegate协议。具体来说,如下方法:

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)
于 2013-07-09T11:46:57.317 回答
-1

使用UIAlertViewDelegateProtocol

表单文档

alertView:clickedButtonAtIndex:

当用户单击警报视图上的按钮时发送给委托人。

  • (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex 参数 alertView 包含按钮的警报视图。buttonIndex 被点击的按钮的索引。按钮索引从 0 开始。 讨论 调用此方法后,接收器会自动关闭。

可用性 适用于 iOS 2.0 及更高版本。在 UIAlertView.h 中声明

- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex {
    if (buttonIndex == 0)
    {
        // do stuff for button index 0,ie cancel button and sthe same for other button  indeces
    }
}
于 2013-07-09T07:08:26.083 回答
-3

请参考本教程: http: //mobile.tutsplus.com/tutorials/iphone/uialertview/ 你可以得到更理想的:

UIAlertView *message = [[UIAlertView alloc] initWithTitle:@"Hello World!"
                                                  message:@"This is your first UIAlertview message."
                                                 delegate:self
                                        cancelButtonTitle:@"Button 1"
                                        otherButtonTitles:@"Button 2", @"Button 3", nil];
[message show];


- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{
    NSString *title = [alertView buttonTitleAtIndex:buttonIndex];
    if([title isEqualToString:@"Button 1"])
    {
        NSLog(@"Button 1 was selected.");
    }
    else if([title isEqualToString:@"Button 2"])
    {
        NSLog(@"Button 2 was selected.");
    }
    else if([title isEqualToString:@"Button 3"])
    {
        NSLog(@"Button 3 was selected.");
    }
}
于 2013-07-09T07:09:24.463 回答