Контроллеры навигации
Основное различие между этими классами состоит в том класс UINavigationController реализован как стек, что делает его весьма подходящима работы с иерархиями.
В чем "соль" стека
Стек (stack) — это часто используемая структура данных, которая работает по известном, принципу: "последним вошел — первым вышел". Хотите — верьте, хотите — нет, но механическая дозатор-игрушка Pez dispenser — прекрасный пример стека. Вам когда-либо доводилось его заправлять мятными пастилками? В соответствии с небольшой инструкцией, которая прилагается к каждой такой игрушке, вам необходимо выполнить несколько простых действий. Во-первых, разверните конфету. Во-вторых, откройте дозатор, опрокинув его головку (это может быть кошачья головка) назад. В-третьих, возьмите пачку (пачка — по англ. "stack" — вы должны были заметить, как удачно мы применили здесь слово "stack") конфет, крепко удерживая ее между указательным и большим пальцами, и вставьте в открытый дозатор. В-четвертых, подберите все маленькие пастилки, которые рассыпались повсюду во время выполнения первых трех действий, поскольку подобные инструкции в действительности не работают.
К сожалению, пока от этого примера, по сути, не было никакой пользы, но все же продолжим. Когда вы подбирали упавшие пастилки и закладывали их по одному в дозатор, вы работали по принципу стека. Помните, мы сказали о стеке:"последним вошел — первым вы шел"? Вот именно так у нас и получается с этим дозатором. Первую пастилку, которую вы опустите в дозатор, вы сможете достать из него только в последнюю очередь. В то же время последняя конфетка, которая "вошла" в дозатор, останется верхней, а значит, ее вы достанете оттуда первой. Компьютерный стек работает по тем же правилам.
Добавляя объект в стек, мы говорим, что заталкиваем (push) его в стек.
Первый объект, который вы поместили в стек, называется основанием стека (base)
Последний объект, который вы поместили в стек, называется вершиной стека (top) (он остается таковым до тех пор, пока вы не замените его следующим объектом, который поместите в стек).
Удаляя объект из стека, мы говорим, что выталкиваем (pop) его из стека. При извлечении объекта из стека им (этим объектом) всегда оказывается объект, который вы поместили в стек последним. И наоборот, первый объект, который был помещен в стек, всегда извлекается из него последним.
- Дата: 7-12-2014, 14:27