2012-02-14 46 views
0

我使用標準選項卡欄應用程序作爲測試應用程序的基礎。從按鈕不起作用啓動圖像選擇器

我也試圖使用在github上找到的ELCAlbumPickerController類。

推出照片選擇器和UIScrollView的按鈕位於Secondview.xib

以下是在SecondViewController.h

#import <UIKit/UIKit.h> 
#import "ELCImagePickerController.h" 


@interface SecondViewController : UIViewController  <ELCImagePickerControllerDelegate,UINavigationControllerDelegate, UIScrollViewDelegate>{ 
    UIWindow *window; 
    SecondViewController *viewController; 
    IBOutlet UIScrollView *scrollview; 

} 

@property (nonatomic,retain) IBOutlet UIWindow *window; 
@property (nonatomic,retain) IBOutlet SecondViewController *viewController; 
@property (nonatomic,retain) IBOutlet UIScrollView *scrollview; 

-(IBAction)launchController; 

@end 

代碼和下面是SecondViewController.m

#import "myappAppDelegate.h" 
#import "SecondViewController.h" 
#import "ELCImagePickerController.h" 
#import "ELCAlbumPickerController.h" 

@implementation SecondViewController 

@synthesize window; 
@synthesize viewController; 
@synthesize scrollview; 


/* 
// Implement viewDidLoad to do additional setup after loading the view, typically from a nib.*/ 
- (void)viewDidLoad 
{ 

    //[self launchController:self]; 
    [super viewDidLoad]; 
} 


- (BOOL)shouldAutorotateToInterfaceOrientation: (UIInterfaceOrientation)interfaceOrientation 
{ 
    // Return YES for supported orientations 
    return (interfaceOrientation == UIInterfaceOrientationPortrait); 
} 

-(IBAction)launchController { 

    ELCAlbumPickerController *albumController = [[ELCAlbumPickerController alloc] initWithNibName:@"ELCAlbumPickerController" bundle:[NSBundle mainBundle]];  
    ELCImagePickerController *elcPicker = [[ELCImagePickerController alloc] initWithRootViewController:albumController]; 
    [albumController setParent:elcPicker]; 
    [elcPicker setDelegate:self]; 

    //myappAppDelegate *app = (myappAppDelegate *)[[UIApplication sharedApplication] delegate]; 
    SecondViewController *app = (SecondViewController *)[[UIApplication sharedApplication] delegate]; 
    [app.viewController presentModalViewController:elcPicker animated:YES]; 
    [elcPicker release]; 
    [albumController release]; 
} 

#pragma mark ELCImagePickerControllerDelegate Methods 

- (void)elcImagePickerController:(ELCImagePickerController *)picker didFinishPickingMediaWithInfo:(NSArray *)info { 

    [self dismissModalViewControllerAnimated:YES]; 

    for (UIView *v in [scrollview subviews]) { 
    [v removeFromSuperview]; 
    } 

CGRect workingFrame = scrollview.frame; 
workingFrame.origin.x = 0; 

for(NSDictionary *dict in info) { 

    UIImageView *imageview = [[UIImageView alloc] initWithImage:[dict objectForKey:UIImagePickerControllerOriginalImage]]; 
    [imageview setContentMode:UIViewContentModeScaleAspectFit]; 
    imageview.frame = workingFrame; 

    [scrollview addSubview:imageview]; 
    [imageview release]; 

    workingFrame.origin.x = workingFrame.origin.x + workingFrame.size.width; 
} 

[scrollview setPagingEnabled:YES]; 
[scrollview setContentSize:CGSizeMake(workingFrame.origin.x, workingFrame.size.height)]; 
} 

- (void)elcImagePickerControllerDidCancel:(ELCImagePickerController *)picker { 

[self dismissModalViewControllerAnimated:YES]; 
} 


- (void)didReceiveMemoryWarning 
{ 
    // Releases the view if it doesn't have a superview. 
    [super didReceiveMemoryWarning]; 

    // Release any cached data, images, etc. that aren't in use. 
} 


- (void)viewDidUnload 
    { 
    [super viewDidUnload]; 

    // Release any retained subviews of the main view. 
    // e.g. self.myOutlet = nil; 
    } 


- (void)dealloc 
{ 
    [super dealloc]; 
} 

@end 

當你點擊按鈕,你得到一個消息「deallocing ELCImagePickerController」所以它調用ELCImagePickerControl ler類但它只是不顯示圖像選擇器。任何想法,將不勝感激。

感謝

回答

1

launchController()方法,你投appDelegateviewController,這在邏輯上是錯誤的。您需要使用實際的viewControllerpresentModalViewController。試試:

[self presentModalViewController:elcPicker animated:YES]; 
+0

'presentModalViewController'現在已被棄用 – Raptor 2014-06-26 12:43:23