Читаем iOS. Приемы программирования полностью

— (BOOL) isInPopover{


Class popoverClass = NSClassFromString(@"UIPopoverController");


if (popoverClass!= nil &&

UI_USER_INTERFACE_IDIOM == UIUserInterfaceIdiomPad &&

self.popoverController!= nil){

return YES;

} else {

return NO;

}


}


— (void) gotoAppleWebsite:(id)paramSender{


if ([self isInPopover]){

/* Перейти на сайт и закрыть вспомогательный экран. */

[self.popoverController dismissPopoverAnimated: YES];

} else {

/* Обработать ситуацию с iPhone. */

}


}


— (void) gotoAppleStoreWebsite:(id)paramSender{


if ([self isInPopover]){

/* Перейти на сайт и закрыть вспомогательный экран. */

[self.popoverController dismissPopoverAnimated: YES];

} else {

/* Обработать ситуацию с iPhone. */

}


}


— (void)viewDidLoad{

[super viewDidLoad];


self.contentSizeForViewInPopover = CGSizeMake(200.0f, 125.0f);


CGRect buttonRect = CGRectMake(20.0f,

20.0f,

160.0f,

37.0f);


self.buttonPhoto = [UIButton buttonWithType: UIButtonTypeRoundedRect];

[self.buttonPhoto setTitle:@"Photo"

forState: UIControlStateNormal];

[self.buttonPhoto addTarget: self

action:@selector(gotoAppleWebsite:)

forControlEvents: UIControlEventTouchUpInside];


self.buttonPhoto.frame = buttonRect;


[self.view addSubview: self.buttonPhoto];


buttonRect.origin.y += 50.0f;

self.buttonAudio = [UIButton buttonWithType: UIButtonTypeRoundedRect];


[self.buttonAudio setTitle:@"Audio"

forState: UIControlStateNormal];

[self.buttonAudio addTarget: self

action:@selector(gotoAppleStoreWebsite:)

forControlEvents: UIControlEventTouchUpInside];


self.buttonAudio.frame = buttonRect;


[self.view addSubview: self.buttonAudio];


}


Теперь в методе viewDidLoad корневого контроллера вида создадим навигационную кнопку. В зависимости от типа устройства при нажатии навигационной кнопки мы будем отображать либо вспомогательный экран (на iPad), либо предупреждающий вид (на iPhone):


— (void)viewDidLoad{

[super viewDidLoad];


/* Проверяем, существует ли этот класс в том варианте iOS,

где действует приложение. */

Class popoverClass = NSClassFromString(@"UIPopoverController");


if (popoverClass!= nil &&

UI_USER_INTERFACE_IDIOM == UIUserInterfaceIdiomPad){


PopoverContentViewController *content =

[[PopoverContentViewController alloc] initWithNibName: nil

bundle: nil];


self.popoverController = [[UIPopoverController alloc]

initWithContentViewController: content];


content.popoverController = self.popoverController;


self.barButtonAdd = [[UIBarButtonItem alloc]

initWithBarButtonSystemItem: UIBarButtonSystemItemAdd

target: self

action:@selector(performAddWithPopover:)];


} else {


self.barButtonAdd = [[UIBarButtonItem alloc]

initWithBarButtonSystemItem: UIBarButtonSystemItemAdd

target: self

action:@selector(performAddWithAlertView:)];


}


Перейти на страницу:
Нет соединения с сервером, попробуйте зайти чуть позже