我现在有个按钮有问题。As it is, the user can take a picture using the camera or photo library and when it is chosen, they can then share this picture by pressing a button. 但是,如果他们在选择照片之前按下分享按钮,应用程序就会崩溃。我很好奇我怎么能参与活动警报,这样如果按下按钮并且没有媒体,它将显示警报消息并伴随一点振动。如果他们确实选择了一张图片,则会显示一个活动表,并且用户可以从此菜单中共享。菜单工作正常,但我知道 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];
}
}