http://tablesorter.com/docs/ очень прост в использовании с широким спектром опций удовлетворить Вашим потребностям. :)
Apple не рекомендует создавать подклассы UITabBarController, поэтому я нашел простой способ управлять авторотацией, используя вместо этого категории. Это не исправляет вашу ошибку с контроллерами представления More ..., но я думаю, что это более удобный для Apple способ выполнения работы (и означает меньшее количество подклассов для вас).
Чтобы каждая вкладка в моем приложении автоматически автоматически поворачивалась, я определил -shouldAutorotateToInterfaceOrientation: в своих настраиваемых контроллерах представления, но все они находятся внутри UINavigationControllers в UITabBarController, поэтому сообщение не будет отправлено по цепочке в мой VC. пока эти двое тоже не ответят. Поэтому я добавил следующие строки в файлы делегатов моего приложения:
Добавлено в конец файла MyAppDelegate.h
@interface UITabBarController (MyApp)
@end
@interface UINavigationController (MyApp)
@end
Добавлено в конец файла MyAppDelegate.m
@implementation UITabBarController (MyApp)
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation {
return YES;
}
@end
@implementation UINavigationController (MyApp)
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation {
return YES;
}
@end
Похоже, у нас есть ошибка. Я создал воспроизводимый минимальный тестовый пример и сообщил об этом через Apple Bug Reporter ( Проблема с RADAR 7139857 ).
Обновление: это было исправлено в iPhone OS 3.1.
Существенная проблема is:
Просмотреть контроллеры уже на Стек контроллера навигации не получить willAnimateRotationToInterfaceOrientation: продолжительность: сообщения, когда контроллер панели вкладок "More Navigation Controller" находится в используйте.
Эта проблема не возникает, когда контроллеры представления элементов панели вкладок являются базовыми контроллерами представления. Только когда они являются контроллерами навигации и только , когда используется иерархия навигации «Больше».
Сообщение консоли (касающееся двухэтапной анимации вращения) предполагает, что что-то внутри структуры (Контроллер дополнительной навигации ?) по-прежнему использует двухэтапную анимацию, хотя в iPhone OS 3.0 теперь рекомендуется одноступенчатая.
Это может объяснить, почему willAnimateRotationToInterfaceOrientation: не вызывается в этом конкретном случае. Согласно документации контроллера представления Apple, это сообщение НЕ будет вызываться, когда вместо этого отправляется ответ на двухэтапные сообщения ориентации первой / второй половины.