Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° Bookidrom.ru! БСсплатныС ΠΊΠ½ΠΈΠ³ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»ΠΈΠΊΠ΅

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«iOS. ΠŸΡ€ΠΈΠ΅ΠΌΡ‹ программирования». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 20

Автор Π’Π°Π½Π΄Π°Π΄ Нахавандипур

arrayWithArray: currentControllers];


/* Π£Π΄Π°Π»ΡΠ΅ΠΌ послСдний ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΈΠ· ΠΌΠ°ΡΡΠΈΠ²Π°. */

[newControllers removeLastObject];


/* ΠŸΡ€ΠΈΡΠ²Π°ΠΈΠ²Π°Π΅ΠΌ этот массив Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΌΡƒ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Ρƒ. */

[self.navigationController setViewControllers: newControllers

animated: YES];

}

1.14. ДСмонстрация изобраТСния Π½Π° Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ ΠΏΠ°Π½Π΅Π»ΠΈ

ΠŸΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΊΠ° Π·Π°Π΄Π°Ρ‡ΠΈ

Π’ качСствС Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° Π²ΠΈΠ΄Π°, ассоциированного Π² Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ с Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹ΠΌ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ΠΎΠΌ, трСбуСтся ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ΡŒ Π½Π΅ тСкст, Π° ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅.

РСшСниС

Π’ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ΡΡŒ свойством titleView Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ элСмСнта ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° Π²ΠΈΠ΄Π°:


β€” (void)viewDidLoad{

[super viewDidLoad];


/* Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ Π²ΠΈΠ΄ с ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ, замСняя ΠΈΠΌ Π²ΠΈΠ΄ с Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠΌ. */

UIImageView *imageView =

[[UIImageView alloc]

initWithFrame: CGRectMake(0.0f, 0.0f, 100.0f, 40.0f)];


imageView.contentMode = UIViewContentModeScaleAspectFit;


/* Π—Π°Π³Ρ€ΡƒΠΆΠ°Π΅ΠΌ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅. Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅! ΠžΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ. */

UIImage *image = [UIImage [email protected]"Logo"];


/* Π—Π°Π΄Π°Π΅ΠΌ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ для Π²ΠΈΠ΄Π° с ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ. */

[imageView setImage: image];


/* Π—Π°Π΄Π°Π΅ΠΌ Π²ΠΈΠ΄ с Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠΌ. */

self.navigationItem.titleView = imageView;


}

ΠŸΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΉ ΠΊΠΎΠ΄ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ Π² ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅ Π²ΠΈΠ΄Π°, находящСмся Π²Π½ΡƒΡ‚Ρ€ΠΈ Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°.

Π― ΡƒΠΆΠ΅ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΠ» ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π² Π³Ρ€ΡƒΠΏΠΏΡƒ рСсурсов ΠΌΠΎΠ΅Π³ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΈ Π½Π°Π·Π²Π°Π» это ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Logo. Как Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Ρ‹ запуститС это ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ с ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹ΠΌ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ΠΎΠΌ ΠΊΠΎΠ΄Π°, ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚, Π½Π°ΠΏΠΎΠΌΠΈΠ½Π°ΡŽΡ‰ΠΈΠΉ рис. 1.35.

Рис. 1.35. Π’ΠΈΠ΄ с ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ Π½Π° нашСй Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ ΠΏΠ°Π½Π΅Π»ΠΈ

ΠžΠ±ΡΡƒΠΆΠ΄Π΅Π½ΠΈΠ΅

Навигационный элСмСнт ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° Π²ΠΈΠ΄Π° ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒ Π΄Π²Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Π²ΠΈΠ΄Π° ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚Π° Π² Ρ‚ΠΎΠΉ области ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° Π²ΠΈΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ этот элСмСнт присвоСн:

β€’ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ тСкст;

β€’ Π²ΠΈΠ΄.


Если Π²Ρ‹ ΡΠΎΠ±ΠΈΡ€Π°Π΅Ρ‚Π΅ΡΡŒ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с тСкстом, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ свойство title Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ элСмСнта. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, Ссли Π²Π°ΠΌ трСбуСтся Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ Π½Π°Π΄ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠΌ ΠΈΠ»ΠΈ Π²Ρ‹ просто Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ вывСсти Π½Π°Π΄ Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ панСлью ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ любой Π΄Ρ€ΡƒΠ³ΠΎΠΉ Π²ΠΈΠ΄, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ свойство titleView Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ элСмСнта ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° Π²ΠΈΠ΄Π°. Π•ΠΌΡƒ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΡΠ²Π°ΠΈΠ²Π°Ρ‚ΡŒ любой ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, ΡΠ²Π»ΡΡŽΡ‰ΠΈΠΉΡΡ подклассом класса UIView. Π’ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ создали Π²ΠΈΠ΄ для изобраТСния, Π° Π·Π°Ρ‚Π΅ΠΌ присвоили Π΅ΠΌΡƒ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅. ΠŸΠΎΡ‚ΠΎΠΌ Π²Ρ‹Π²Π΅Π»ΠΈ это ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π² качСствС Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° Π²ΠΈΠ΄Π°, Π² настоящий ΠΌΠΎΠΌΠ΅Π½Ρ‚ находящСгося Π½Π° Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΌ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅.

Бвойство titleView Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ ΠΏΠ°Π½Π΅Π»ΠΈ β€” это самый ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ Π²ΠΈΠ΄, Π½ΠΎ Apple Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅Ρ‚, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΅Π³ΠΎ высота Π½Π΅ ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ°Π»Π° 128 Ρ‚ΠΎΡ‡Π΅ΠΊ. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ считайтС Π΅Π³ΠΎ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ. Если Π±Ρ‹ Π²Ρ‹ Π·Π°Π³Ρ€ΡƒΠΆΠ°Π»ΠΈ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, ΠΈΠΌΠ΅ΡŽΡ‰Π΅Π΅ высоту 128 пиксСлов, Ρ‚ΠΎ Π½Π° сСтчатом дисплСС это соотвСтствовало Π±Ρ‹ 64 Ρ‚ΠΎΡ‡ΠΊΠ°ΠΌ ΠΈ всС Π±Ρ‹Π»ΠΎ Π±Ρ‹ Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎ. Но Ссли Π±Ρ‹ Π²Ρ‹ Π·Π°Π³Ρ€ΡƒΠΆΠ°Π»ΠΈ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ высотой 300 пиксСлов Π½Π° сСтчатом дисплСС, Ρ‚ΠΎ ΠΏΠΎ высотС ΠΎΠ½ΠΎ заняло Π±Ρ‹ 150 Ρ‚ΠΎΡ‡Π΅ΠΊ, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Π·Π°ΠΌΠ΅Ρ‚Π½ΠΎ прСвысило Π±Ρ‹ Ρ‚Π΅ 128 Ρ‚ΠΎΡ‡Π΅ΠΊ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Apple Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅Ρ‚ для Π²ΠΈΠ΄ΠΎΠ², располоТСнных Π² строкС Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ°. Для исправлСния этой ситуации Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π²ΠΈΠ΄ Π² строкС Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° ΠΏΠΎ высотС Π½ΠΈ Π² ΠΊΠΎΠ΅ΠΌ случаС Π½Π΅ окаТСтся большС 128 Ρ‚ΠΎΡ‡Π΅ΠΊ, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π·Π°Π΄Π°Ρ‚ΡŒ для ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚Π° Ρ€Π΅ΠΆΠΈΠΌ заполнСния Π²ΠΈΠ΄Π° Ρ†Π΅Π»ΠΈΠΊΠΎΠΌ, Π° Π½Π΅ ΠΏΠΎΠ΄Π³ΠΎΠ½ΠΊΠΈ Π²ΠΈΠ΄Π° ΠΏΠΎΠ΄ содСрТимоС. Для этого ΠΌΠΎΠΆΠ½ΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ свойство contentMode вашСй строки Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° Π² UIViewContentModeScaleAspectFit.

1.15. Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΊΠ½ΠΎΠΏΠΎΠΊ Π½Π° Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Π΅ ΠΏΠ°Π½Π΅Π»ΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ UIBsrButtonItem

ΠŸΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΊΠ° Π·Π°Π΄Π°Ρ‡ΠΈ

НСобходимо Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠ½ΠΎΠΏΠΊΠΈ Π½Π° Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠΎΠ½Π½ΡƒΡŽ панСль.

РСшСниС

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ класс UIBarButtonItem.

ΠžΠ±ΡΡƒΠΆΠ΄Π΅Π½ΠΈΠ΅

На Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ ΠΏΠ°Π½Π΅Π»ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒΡΡ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ элСмСнты. Кнопки часто ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°ΡŽΡ‚ΡΡ Π² Π΅Π΅ Π»Π΅Π²ΠΎΠΉ ΠΈ ΠΏΡ€Π°Π²ΠΎΠΉ частях. Π’Π°ΠΊΠΈΠ΅ ΠΊΠ½ΠΎΠΏΠΊΠΈ относятся ΠΊ классу UIBarButtonItem ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ самыС Ρ€Π°Π·Π½ΠΎΠΎΠ±Ρ€Π°Π·Π½Ρ‹Π΅ Ρ„ΠΎΡ€ΠΌΡ‹ ΠΈ очСртания. Рассмотрим ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΠΎΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΉ Π½Π° рис. 1.36.


Рис. 1.36. Π Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΊΠ½ΠΎΠΏΠΊΠΈ, ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅ΠΌΡ‹Π΅ Π½Π° Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ ΠΏΠ°Π½Π΅Π»ΠΈ


НавигационныС ΠΏΠ°Π½Π΅Π»ΠΈ относятся ΠΊ классу UINavigationBar, ΠΈΡ… ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΊΠΎΠ³Π΄Π° ΡƒΠ³ΠΎΠ΄Π½ΠΎ ΠΈ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ ΠΊ Π»ΡŽΠ±ΠΎΠΌΡƒ Π²ΠΈΠ΄Ρƒ. Π˜Ρ‚Π°ΠΊ, просто рассмотрим Ρ€Π°Π·Π½Ρ‹Π΅ ΠΊΠ½ΠΎΠΏΠΊΠΈ (с Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ очСртаниями), Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½Ρ‹Π΅ Π½Π° Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Π΅ ΠΏΠ°Π½Π΅Π»ΠΈ Π½Π° рис. 1.36. На ΠΊΠ½ΠΎΠΏΠΊΠ°Ρ…, Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½Π½Ρ‹Ρ… справа свСрху, Π²ΠΈΠ΄ΠΈΠΌ стрСлки, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½Ρ‹ Π²Π²Π΅Ρ€Ρ… ΠΈ Π²Π½ΠΈΠ·. На ΠΊΠ½ΠΎΠΏΠΊΠ΅, находящСйся слСва Π²Π²Π΅Ρ€Ρ…Ρƒ, имССтся стрСлка, ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰Π°Ρ Π²Π»Π΅Π²ΠΎ. Кнопки, располоТСнныС Π½Π° Π½ΠΈΠΆΠ½Π΅ΠΉ Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ ΠΏΠ°Π½Π΅Π»ΠΈ, ΠΈΠΌΠ΅ΡŽΡ‚ Ρ€Π°Π·Π½Ρ‹Π΅ очСртания. Π’ этом Ρ€Π°Π·Π΄Π΅Π»Π΅ ΠΌΡ‹ рассмотрим, ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠ· Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ½ΠΎΠΏΠΎΠΊ.

Работая с Π΄Π°Π½Π½Ρ‹ΠΌ Ρ€Π°Π·Π΄Π΅Π»ΠΎΠΌ, Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ шаги, пСрСчислСнныС Π² ΠΏΠΎΠ΄Ρ€Π°Π·Π΄Π΅Π»Π΅ Β«Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΈ запуск вашСго ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ прилоТСния для iOSΒ» Ρ€Π°Π·Π΄Π΅Π»Π° 1.0 Π΄Π°Π½Π½ΠΎΠΉ Π³Π»Π°Π²Ρ‹ ΠΈ создайтС пустоС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. ΠŸΠΎΡ‚ΠΎΠΌ ΠΏΡ€ΠΎΠ΄Π΅Π»Π°ΠΉΡ‚Π΅ шаги, описанныС Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ 1.12, ΠΈ Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ Π² Π΄Π΅Π»Π΅Π³Π°Ρ‚ вашСго прилоТСния Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€.

Π§Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΊΠ½ΠΎΠΏΠΊΡƒ для Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ ΠΏΠ°Π½Π΅Π»ΠΈ, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅.

1. Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ экзСмпляр класса UIBarButtonItem.

2. Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ²ΡˆΡƒΡŽΡΡ ΠΊΠ½ΠΎΠΏΠΊΡƒ Π½Π° Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠΎΠ½Π½ΡƒΡŽ панСль, воспользовавшись свойством navigationItem, относящимся ΠΊ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Ρƒ Π²ΠΈΠ΄Π°. Бвойство navigationItem позволяСт Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ с Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ панСлью. Π‘Π°ΠΌΠΎ это свойство ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ Π΅Ρ‰Π΅ Π΄Π²Π° свойства: rightBarButtonItem ΠΈ leftBarButtonItem. Оба ΠΎΠ½ΠΈ относятся ΠΊ Ρ‚ΠΈΠΏΡƒ UIBarButtonItem.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ рассмотрим ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ ΠΊΠ½ΠΎΠΏΠΊΡƒ Π² ΠΏΡ€Π°Π²ΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ нашСй Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ ΠΏΠ°Π½Π΅Π»ΠΈ. На этой ΠΊΠ½ΠΎΠΏΠΊΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ написано Add (Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ):


β€” (void) performAdd:(id)paramSender{

NSLog(@"Action method got called.");

}


β€” (void)viewDidLoad{

[super viewDidLoad];


self.title = @"First Controller";


self.navigationItem.rightBarButtonItem =

[[UIBarButtonItem alloc] initWithTitle:@"Add"

style: UIBarButtonItemStylePlain

target: self

action:@selector(performAdd:)];

}


Если сСйчас Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, появится ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ°, ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ ΠΊΠ°ΠΊ Π½Π° рис. 1.37.


Рис. 1.37. Навигационная ΠΊΠ½ΠΎΠΏΠΊΠ°, добавлСнная Π½Π° Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠΎΠ½Π½ΡƒΡŽ панСль


Пока всС просто. Но Ссли Π²Ρ‹ рСгулярно ΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ΡΡŒ iOS, Ρ‚ΠΎ, вСроятно, Π·Π°ΠΌΠ΅Ρ‚ΠΈΠ»ΠΈ, Ρ‡Ρ‚ΠΎ Π² систСмных прилоТСниях iOS примСняСтся готовая конфигурация ΠΈ ΠΊΠ½ΠΎΠΏΠΊΠ° Add (Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ) Ρ‚Π°ΠΌ выглядит ΠΈΠ½Π°Ρ‡Π΅. На рис. 1.38 ΠΏΠΎΠΊΠ°Π·Π°Π½ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΈΠ· Ρ€Π°Π·Π΄Π΅Π»Π° Alarm (Π‘ΡƒΠ΄ΠΈΠ»ΡŒΠ½ΠΈΠΊ) прилоТСния Clock (Часы) для iPhone. ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ + Π² Π²Π΅Ρ€Ρ…Π½Π΅ΠΉ ΠΏΡ€Π°Π²ΠΎΠΉ части Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ ΠΏΠ°Π½Π΅Π»ΠΈ.


Рис. 1.38. ΠŸΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ способ создания ΠΊΠ½ΠΎΠΏΠΊΠΈ Add (Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ)


ΠžΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ΡΡ, Π² SDK iOS ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ систСмныС ΠΊΠ½ΠΎΠΏΠΊΠΈ. Π­Ρ‚ΠΎ дСлаСтся с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°-ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€Π° nitWithBarButtonSystemItem: target: action:, относящСгося ΠΊ классу UIBarButtonItem:


β€” (void) performAdd:(id)paramSender{

NSLog(@"Action method got called.");

}


β€” (void)viewDidLoad{

[super viewDidLoad];

self.title = @"First Controller";


self.navigationItem.rightBarButtonItem =

[[UIBarButtonItem alloc]

initWithBarButtonSystemItem: UIBarButtonSystemItemAdd

target: self

action:@selector(performAdd:)];

}


Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ получится ΠΈΠΌΠ΅Π½Π½ΠΎ Ρ‚ΠΎ, Ρ‡Π΅Π³ΠΎ ΠΌΡ‹ добивались (рис. 1.39).

ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°-ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€Π° initWithBarButtonSystemItem: target: action:, относящСгося ΠΊ Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠ΅, ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ Π² качСствС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² Π»ΡŽΠ±Ρ‹Π΅ значСния ΠΈΠ· пСрСчня UIBarButtonSystemItem:


Рис. 1.39. БистСмная ΠΊΠ½ΠΎΠΏΠΊΠ° Add (Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ)


typedef NS_ENUM(NSInteger, UIBarButtonSystemItem) {

UIBarButtonSystemItemDone,

UIBarButtonSystemItemCancel,

UIBarButtonSystemItemEdit,

UIBarButtonSystemItemSave,

UIBarButtonSystemItemAdd,

UIBarButtonSystemItemFlexibleSpace,

UIBarButtonSystemItemFixedSpace,

UIBarButtonSystemItemCompose,

UIBarButtonSystemItemReply,

UIBarButtonSystemItemAction,

UIBarButtonSystemItemOrganize,

UIBarButtonSystemItemBookmarks,

UIBarButtonSystemItemSearch,

UIBarButtonSystemItemRefresh,

UIBarButtonSystemItemStop,

UIBarButtonSystemItemCamera,

UIBarButtonSystemItemTrash,

UIBarButtonSystemItemPlay,

UIBarButtonSystemItemPause,

UIBarButtonSystemItemRewind,

UIBarButtonSystemItemFastForward,

#if __IPHONE_3_0 <= __IPHONE_OS_VERSION_MAX_ALLOWED

UIBarButtonSystemItemUndo,

UIBarButtonSystemItemRedo,

#endif

#if __IPHONE_4_0 <= __IPHONE_OS_VERSION_MAX_ALLOWED

UIBarButtonSystemItemPageCurl,

#endif

};


Один ΠΈΠ· самых интСрСсных ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€ΠΎΠ² ΠΈΠ· класса UIBarButtonItem β€” ΠΌΠ΅Ρ‚ΠΎΠ΄ initWithCustomView:. Π’ качСствС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° этот ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ любой Π²ΠΈΠ΄, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ ΠΌΡ‹ Π΄Π°ΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΠΌ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π½Π° Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠΎΠ½Π½ΡƒΡŽ панСль Π² качСствС Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΈ UISwitch (см. Ρ€Π°Π·Π΄Π΅Π» 1.2). Π­Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ Π½Π΅ ΠΎΡ‡Π΅Π½ΡŒ красиво, Π½ΠΎ ΠΌΡ‹ просто ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠ΅ΠΌ: