今、ボタンで悩んでいます。そのまま、ユーザーはカメラまたは写真ライブラリを使用して写真を撮ることができ、それが選択されると、ボタンを押すことでこの写真を共有できます。ただし、写真を選択する前に共有ボタンを押すと、アプリがクラッシュします。ボタンが押されたときにメディアがない場合、小さな振動とともにアラートメッセージが表示されるように、アクティビティアラートをどのように関与させることができるか興味があります。写真を選択すると、アクティビティ シートが表示され、ユーザーはこのメニューから共有できます。メニューは問題なく動作しますが、if/else ステートメントには欠陥があります。画像は「_timeSlip」で表されます。助けてくれてありがとう!私のコードは次のとおりです。
- (IBAction)shareButtonPressed
{
if (_timeSlip !=nil)
{
// Issue vibrate
AudioServicesPlaySystemSound(kSystemSoundID_Vibrate);
UIAlertView *alert = [[UIAlertView alloc]initWithTitle: @"No Photo Chosen"
message: @"Please Select a Photo"
delegate: self
cancelButtonTitle:@"Cancel"
otherButtonTitles:@"OK",nil];
[alert show];
[alert release];
}
else {
//
//step 1: set up path
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,
NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
//step 2: get path for local file
NSString* path = [documentsDirectory stringByAppendingPathComponent:
@"time.png" ];
//UIImage *localImage = [UIImage imageNamed:@"SDBack.png"];
UIImage *localImage = _timeSlip;
REMailActivity *mailActivity = [[REMailActivity alloc] init];
RESaveToCameraRollActivity *saveToCameraRollActivity = [[RESaveToCameraRollActivity alloc] init];
REPrintActivity *printActivity = [[REPrintActivity alloc] init];
RECopyActivity *copyActivity = [[RECopyActivity alloc] init];
// Compile activities into an array, we will pass that array to
// REActivityViewController on the next step
//
NSArray *activities = @[mailActivity, saveToCameraRollActivity, printActivity,copyActivity];
// Create REActivityViewController controller and assign data source
//
REActivityViewController *activityViewController = [[REActivityViewController alloc] initWithViewController:self activities:activities];
activityViewController.userInfo = @{
@"image": localImage,
@"text": @"Time Slip!"
};
[activityViewController presentFromRootViewController];
}
}