我正在尝试使用UIAlertController弹出警告,但我不断收到此错误:
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Application tried to present a nil modal view controller on target <States: 0x17557b90>.'
if([InAppPurchaseVerifier hasSubscription]){
NSUInteger row = [indexPath row];
NSDictionary *myDict = [[NSDictionary alloc] initWithDictionary:[self.fullList objectAtIndex:row]];
NSString *state = [[NSString alloc] initWithString: [myDict objectForKey:@"0"]];
NSString *stateDetails = [[NSString alloc] initWithString: [myDict objectForKey:@"1"]];
OfficeInfo *anotherViewController = [[OfficeInfo alloc] initWithNibName:@"OfficeInfo" bundle:nil];
anotherViewController.stateName = state;
anotherViewController.stateDetails = stateDetails;
[state release];
[stateDetails release];
[self.navigationController pushViewController:anotherViewController animated:YES];
[anotherViewController release];
}else{
UIAlertController* alert = [[UIAlertController init] alertControllerWithTitle:@"Subscription Needed" message:@"You need to subscribe in order to access that. If you already have a subscription you may need to restore it" preferredStyle:UIAlertControllerStyleAlert];
[self presentViewController:alert animated:YES completion:nil]; // Error throws here
}
答案 0 :(得分:8)
UIAlertController
仅适用于iOS 8.对于以前的版本,您必须检查并回退到旧代码路径,继续使用已弃用的API,或者编写一个快乐的小包装器对象。