Если нет чего-то волшебного, что я еще не обнаружил, я не думаю, что вы правильно связали делегирование кнопок.Похоже, вы сказали кнопке, что строка @ "tt: // samples / new" является объектом, который получает событие нажатия, и вы хотите, чтобы он не отправлял никаких сообщений (не вызывайте метод / nil).
Создайте метод в контроллере представления с помощью кнопки, например, такой:
- (void)addButtonPressed:(id)sender{
TTURLAction *urlAction = [TTURLAction actionWithURLPath:@"tt://samples/new"];
[[TTNavigator navigator] openURLAction:urlAction];
}
Затем замените вашу кнопку init следующим:
self.navigationItem.rightBarButtonItem =
[[[UIBarButtonItem alloc] initWithTitle:@"Add New"
style:UIBarButtonItemStyleBordered
target:self
action:@selector(addButtonPressed:)]
autorelease];
Это вызовет экземпляр-одиночку TTNavigatorоткрыть действие, созданное с указанным путем строки.Кнопка должна обрабатываться делегатом кнопки, и self, ваш контроллер представления, идеально подходит для этого.Затем метод обработчика вызывает навигацию 32 с использованием пути.Если у вас все правильно подключено в appDelegate, Three20 создаст и выдвинет контроллер представления, который вы отобразили.Надеюсь, это поможет.