'NSInvalidArgumentException', reason: 'Sheet can not be presented because the view is not in a windowとコンソールに表示されてアプリがクラッシュする。
修正前
UIActionSheet *actionSheet = [[[UIActionSheet alloc]
initWithTitle: @"Hoge"
delegate: self
cancelButtonTitle: @"Cancel", nil)
destructiveButtonTitle: nil
otherButtonTitles:
@"Done", nil]
autorelease];
CGRect frame = [[UIScreen mainScreen] applicationFrame];
UIView *actionSheetsubView = [[[UIView alloc] initWithFrame:CGRectMake(0,0,frame.size.width,frame.size.height)]autorelease];
[actionSheet showInView: actionSheetsubView];
修正後
UIActionSheet *actionSheet = [[[UIActionSheet alloc]
initWithTitle: @"Hoge"
delegate: self
cancelButtonTitle: @"Cancel", nil)
destructiveButtonTitle: nil
otherButtonTitles:
@"Done", nil]
autorelease];
[actionSheet showInView:[[[[UIApplication sharedApplication] keyWindow] subviews] lastObject]];
参考記事:
http://stackoverflow.com/questions/18932544/nsinvalidargumentexception-reason-sheet-can-not-be-presented-because-the-vi
【UIActionSheetの最新記事】