我有一個應用程序從框架呈現視圖控制器。在框架的視圖控制器中,我檢查loadView中的有效許可證。如果許可證無效,回調會返回給用戶界面以不加載視圖。所以,現在我正在測試我的SDK的用戶是否嘗試不執行許可證檢查。即使許可證無效,該維也會顯示。Objective c如何將子視圖控制器返回給呈現視圖控制器
我嘗試下面的代碼,但視圖獲取反正顯示:
- (void)viewWillAppear:(BOOL)animated
{
if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) {
if (self.validLicense) {
[self loadCameraPreview];
} else {
[self dismissViewControllerAnimated:YES completion:nil];
}
} else {
IDLog(@"No Camera!");
self.tapRecognizer.enabled = NO;
}
}
有誰知道我怎麼能殺的觀點,並沒有顯示呢?該視圖位於SDK中。它不在應用程序中。有了上面的代碼,應用程序就會停留在這個頁面上,不起作用。我猜這是好的。但我真的很想讓所呈現的視圖卸載。
的演示代碼如下所示:
if (bundle) {
if (!self.cameraVC) {
self.cameraVC =
[[IDCameraViewController alloc] initWithNibName:@"IDCameraViewController"
bundle:bundle];
[self.cameraVC setOutImageBinarization:NO];
[self.cameraVC setTapRecognizerEnabled:YES];
[self.cameraVC setReturnType:BOTH];
}
UIView *cameraView = self.cameraVC.view;
//if (self.validLicense) {
[self.cameraVC setCaptureMode:self.mode];
[self.cameraVC willMoveToParentViewController:self];
[self addChildViewController:self.cameraVC];
[self.view addSubview:cameraView];
[self.cameraVC didMoveToParentViewController:self];
//}
// if (self.validLicense == NO) {
// UIAlertView *alert =
// [[UIAlertView alloc] initWithTitle:@"License Activation"
// message:@"A valid license must be activated for this product."
// delegate:self
// cancelButtonTitle:@"OK"
// otherButtonTitles:nil];
// [alert show];
// }
}
記住,我註釋掉的檢查測試,如果我的SDK的用戶試圖使用它沒有一個有效的許可證。
我不認爲這是可能的解僱視圖控制器loadView。爲什麼不在呈現視圖控制器之前檢查需求,以便如果不滿足需求,則不提供新的視圖控制器。 – Sandeep
@瘋狂-36 - 給我一個答案,我會給你信貸。提示:它以「我」開頭。 – Patricia
你的意思是重寫init方法,然後在任何這樣的條件下返回nil作爲自我? – Sandeep