Ответ 1
Из документов:
appearanceWhenContainedIn:
...
Прокси-сервер внешнего вида для получателя в заданном сдерживании Иерархия.
Фактически это означает, что список с нулевым завершением определяет не список классов контейнеров для UIBarButtonItem, а иерархию контейнеров сверху вниз, поэтому
[UIBarButtonItem appearanceWhenContainedIn:[UINavigationBar class], [UIToolbar class], nil]
возвращает прокси-сервер внешнего вида для UIBarButtonItem, который находится внутри UINavigationBar, а UINavigationBar, в свою очередь, находится внутри UIToolbar.
или
[[UIBarButtonItem appearanceWhenContainedIn:[UIToolbar class],[ViewController class], nil] setTintColor:[UIColor redColor]];
установите цвет красного цвета для UIBarButtonItems, которые находятся в любом UIToolBar, которые находятся в классе ViewController.
Чтобы установить внешний вид для UINavigationBar и UIToolBar отдельно, вам понадобятся два отдельных вызова метода +appearanceWhenContainedIn: