0

ナビゲーションスタックの一部のビューコントローラをポップした後にこのエラーが発生しました。最後に、アクションシートで質問します。私はエラー・パラメータがview != nilを満たしていないことに気づいています。これは、私を狂ってしまうのです。実際には、アクションシートを呼び出す前にチェックすると、実際にはnilの値ではないからです。私が持っていたのにUIActionSheetパラメータが無効です:view!= nil

if (self.view != nil) { 
      NSLog(@"view is not nil"); 
     } 
UIActionSheet *actionSheet = [[UIActionSheet alloc]initWithTitle:@"title" delegate:nil cancelButtonTitle:@"cancel" destructiveButtonTitle:@"destructive" otherButtonTitles:nil]; 
    [actionSheet showInView:self.view]; 

答えて

5

UIActionSheetを表示しようとしているビューがまだウィンドウに添付されていない可能性があります。ビューがウィンドウに添付された後にshowInViewを呼び出してみてください。上記のコードがビューコントローラの実装にあると仮定し、loadViewの代わりにviewDidLoadでそれを呼び出そうとします。

+0

実際、「viewDidAppear」で呼び出すといいですよ。 – mpemburn

1

[:withObject:afterDelay:自己performSelectorは。1]各ポップの後、私はそれがビューの状態で何かを持って推測しています。 Inを表示する必要があります。

1

showInViewはない満足私無効なパラメータを与えていた:表示=例外nilをあまりにも..ので、私が追加した場合ので[self.view addSubview action sheet];

がshowInViewは、のviewDidLoad後に呼び出されるべきで試してみました[actionSheet showInView:self.view]! ; viewDidAppearでは、それはクラッシュしません..

0

このエラーは、Xcode 4.6.2のユニットテストで、UIActionSheetを表示する必要がある行に当たったときに発生しました。 Xcodeの古いバージョンでは発生しませんでした。私はそれが類似の問題のためだと思う - ユニットテスト中に提示する見解はない。

アクションシートを表示し、ボタンを選択してアップルにバグレポートを送信するのではなく、基礎となるデータを変更してテストすることで、私はそれを回避しました。