Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.

uaecasher

macrumors 65816
Original poster
Jan 29, 2009
1,289
0
Stillwater, OK
Hello,

I'm trying to make a conditional statement to remove a code if the device is not iPad, my app is a universal app.

here is the code:

Code:
- (IBAction)presentMasterInPopoverFromBarButtonItem:(UIBarButtonItem *)barButtonItem {
	if ([UIDevice instancesRespondToSelector:@selector(userInterfaceIdiom)]&&[[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPad) {
	UIImagePickerController* picker = [[UIImagePickerController alloc] init]; 
	picker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary; 
	picker.delegate = self; 
		
	UIPopoverController *popover = [[UIPopoverController alloc] initWithContentViewController:picker];
	self.popoverController = popover; 
	[popover release];
	[popoverController presentPopoverFromBarButtonItem:barButtonItem  permittedArrowDirections:UIPopoverArrowDirectionUp animated:YES];
	
	[picker release];

	} else {
		 NSLog(@"iPhone Idiom");
	}

}

that code isn't working and my app is crashing on any iPhone/iPod, I tried another code provided by apple team in their forum

Code:
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)

but it doesn't work either.

i get this error:

Code:
dyld: Symbol not found: _OBJC_CLASS_$_UIPopoverController
  Referenced from: /var/mobile/Applications/F04EED5E-8150-4477-8E1C-855CD74D6198/Pixels.app/Pixels
  Expected in: /System/Library/Frameworks/UIKit.framework/UIKit

any help please?
 

PhoneyDeveloper

macrumors 68040
Sep 2, 2008
3,114
93
Code:
- (IBAction)presentMasterInPopoverFromBarButtonItem:(UIBarButtonItem *)barButtonItem {
	if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
	UIImagePickerController* picker = [[UIImagePickerController alloc] init]; 
	picker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary; 
	picker.delegate = self; 
		
	UIPopoverController *popover = [[NSClassFromString(@"UIPopoverController"); alloc] initWithContentViewController:picker];
	self.popoverController = popover; 
	[popover release];
	[popoverController presentPopoverFromBarButtonItem:barButtonItem  permittedArrowDirections:UIPopoverArrowDirectionUp animated:YES];
	
	[picker release];

	} else {
		 NSLog(@"iPhone Idiom");
	}

}
 

firewood

macrumors G3
Jul 29, 2003
8,107
1,345
Silicon Valley
I use:
Code:
#if __IPHONE_OS_VERSION_MAX_ALLOWED >= 30200
    if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
                globalFlagForIPad = YES;
    }
    if (globalFlagForIPad) {
        iPad stuff...
    }
#endif
so that my code is portable to 3.0 projects as well as 3.2.
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.