Ответ: нет. То есть init не будет вызываться для уже инициализированного экземпляра, но будет выделен и инициализирован новый экземпляр.
Это связано с тем, что Three20 связывает объект с полным URL-адресом, который в вашем случае является либо «tt: // tabbar / string», либо «tt: // tabbar /thingelse», так что при запросе TTURLMap
, уже существующий объект не будет найден, а новый будет создан. По крайней мере, это верно для Three20 1.0.3. Но, думаю, они этого не изменили.
По моему мнению, механизм общего контроллера должен использоваться в очень специфических случаях, например, для представления настроек, и его не следует рассматривать как своего рода синглтон, реализованный на Three20. Каждый раз, когда я пытался использовать это для более «умного» использования TTURLMap, я обнаруживал, что возвращаюсь к контроллеру без общего доступа.