_UIImagePickerControllerUserDidCaptureItem不叫的Xcode

2019-10-21 03:42发布

难道只是我还是从的UIImagePickerController _UIImagePickerControllerUserDidCaptureItem通知停止在iOS 8和6的XCode工作,我用它的用户抽放的图片后,旋转的摄像头覆盖。 请帮忙

Answer 1:

这是非常奇怪的,但在iOS 8的设置观测用

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(imagePickerControllerDidCapture) name:@"_UIImagePickerControllerUserDidCaptureItem" object:nil];

不适合工作的UIImagePickerController,但使用块工作正常:

self.imagePickerControllerDidCaptureObserver = [[NSNotificationCenter defaultCenter] addObserverForName:@"_UIImagePickerControllerUserDidCaptureItem" object:nil queue:nil usingBlock:^(NSNotification *note) {
    [self removeCameraOverlay];
}];

请注意,在这种方法中,你应该存储观测对象后脱离它使用

[[NSNotificationCenter defaultCenter] removeObserver:imagePickerControllerDidCaptureObserver];

在这样说,这是非常有用的使用情况

[[NSNotificationCenter defaultCenter] addObserverForName:nil object:nil queue:nil usingBlock:^(NSNotification *note) {
    NSLog(@"Notification: %@", note.name);
}];

监控所有通知,请参阅名称和它的瞬间触发。



Answer 2:

我也看到,通过提到的与iOS 8同样的问题,但使用块的工作Amoneron在他的答案 。

以下是如何做到这一点的斯威夫特:

NSNotificationCenter.defaultCenter().addObserverForName("_UIImagePickerControllerUserDidCaptureItem", object:nil, queue:nil, usingBlock: { note in
  // do something here
})


Answer 3:

它仍然对我的作品,但我使用的通知中心。

NSNotificationCenter.DefaultCenter.AddObserver (new NSString ("_UIImagePickerControllerUserDidCaptureItem"), HandleUserCapturedItem);

该代码是在C#作为我使用xamarin开发,因为我基本上使用的包装类(由xamarin建)应该在Objective-C类似的东西。



文章来源: _UIImagePickerControllerUserDidCaptureItem not called xcode 6