У меня есть вопрос, касающийся навигации по контроллеру представления в Three20. У меня есть TTTableView "Галерея" и TTPhotoViewController "Фотографии". Когда я касаюсь одного элемента представления таблицы, приложение переходит к просмотру фотографий.
Вот код, который я использовал:
В методе AppDelegate.m
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
,
TTNavigator *navigator = [TTNavigator navigator];
navigator.supportsShakeToReload = NO;
navigator.persistenceMode = TTNavigatorPersistenceModeAll;
TTURLMap *map = navigator.URLMap;
[map from:@"*" toViewController:[TTWebController class]];
[map from:@"tt://launcher" toSharedViewController:[LauncherViewController class]];
[map from:@"tt://photos" parent:@"tt://gallery" toViewController:[PhotoViewController class] selector:nil transition:0];
[map from:@"tt://gallery" parent:@"tt://launcher" toViewController:[GalleryViewController class] selector:nil transition:0];
GalleryViewController - это контроллер табличного представления
@interface GalleryViewController : TTTableViewController
@end
В GalleryViewController.m
-(void)createModel
{
self.dataSource = [TTListDataSource dataSourceWithObjects:
[TTTableSubtitleItem itemWithText:@"Album One" subtitle:nil imageURL:@"http://example.image.url" URL:@"tt://photos"]
,
[TTTableSubtitleItem itemWithText:@"Album Two" subtitle:nil imageURL:@"http://example.image.url2" URL:@"tt://photos"],
nil];
}
Я скопировал этот код из примера проекта TTCatalog.xcodeproj
. Но я не могу углубиться в просмотр фотографий и получил следующее из консоли, когда пытаюсь перейти к просмотру фотографий из элемента представления таблицы.
nested push animation can result in corrupted navigation bar
Finishing up a navigation transition in an Navigation Bar subview tree might get corrupted.
Unbalanced calls to begin/end appearance transitions for <PhotoViewController: 0x6c5d8f0>.
Так что я не знаю, как решить этот вопрос. Спасибо!
-------- Обновление: ----------
Я понял, как решить проблему. В методах AppDelegate
используйте
[map from:@"tt://launcher" toSharedViewController:[LauncherViewController class]];
[map from:@"tt://photos" parent:@"tt://gallery" toSharedViewController:[PhotoViewController class] selector:nil];
[map from:@"tt://gallery" parent:@"tt://launcher" toSharedViewController:[GalleryViewController class] selector:nil];
вместо [map from: parent: toViewController: selector: transition:]
Но тут возникает другой вопрос, может кто-нибудь объяснить, почему toSharedViewController
может решить эту проблему?