0

UIActionSheet をアプリに取り込もうとしています。アイデアは、特定の状態でアプリを終了した場合、起動時にポップアップして、続行するかリセットするかを尋ねるというものです. コードは次のとおりです。

NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];

continueYesNo = [prefs boolForKey:@"keyContinueMeeting"]; 

if (continueYesNo) {
  NSString *message_continue = [[NSString alloc] initWithFormat:@"Do you want to Continue the Prior Meeting"];
  UIActionSheet *actionSheet = [[UIActionSheet alloc] 
   initWithTitle:message_continue 
   delegate:self
   cancelButtonTitle:@"Reset" 
   destructiveButtonTitle:@"Continue"
   otherButtonTitles:nil];
  [actionSheet showInView:self.view];
  [actionSheet release];
  [message_continue release];
}

これはviewDidLoadにあります。実際のコード アクションは次のとおりです。

- (void)actionSheet:(UIActionSheet *)actionSheet didDismissWithButtonIndex:(NSInteger)buttonIndex
{
 Wasted_TimeAppDelegate  *delegate = [[UIApplication sharedApplication] delegate];
 NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];

 if (buttonIndex != [actionSheet cancelButtonIndex]) {
  delegate.continueMeeting = YES;
  [prefs setBool:YES forKey:@"keyContinueMeeting"];
         [ [NSUserDefaults standardUserDefaults] synchronize]; 
 } else {
  delegate.continueMeeting = NO;
  [prefs setBool:NO forKey:@"keyContinueMeeting"];
  [ [NSUserDefaults standardUserDefaults] synchronize];  
 }
}

それはすべて非常に簡単に思えますが、何らかの理由で iPhone では問題なく動作しますが、iPad ではこの時点でプログラムがクラッシュします。

4

1 に答える 1

0

わかりました、これは大きな太ったDOHです!私はiPadXIBを誤って実装しましたが、それらを再開発した後、これは設計どおりに機能します。

于 2010-11-06T17:24:26.643 に答える