Добрый день, ребята, я хотел бы узнать, не сталкивался ли кто-нибудь из вас с такой проблемой, как моя. Я работал над проектом с использованием TTNavigator платформы Three20. Каждое представление отображается и переносится, как и должно быть. У меня есть меню приложения, в котором есть кнопки для соответствующих модулей приложения. Проблема заключается в том, что когда я нажимаю кнопку определенного модуля и когда отображается это представление, значение свойства URL-адреса TTNavigator соответствует значению представления меню приложения (tt: // mainMenu), а не начальному представлению модуля ( например, "tt: // messageBoard" или "tt: // profilePage"). Я проверил и проверил необходимые блоки кода, с которыми может быть связана эта проблема, но мне кажется, что я не могу точно устранить возникшую ошибку.
Вот определение для моего AppDelegate
#import "Three20TestAppDelegate.h"
#import "StartViewController.h"
#import "JumpsiteProfilePage.h"
#import "MenuViewController.h"
#import "BNDefaultStylesheet.h"
#import "MessageBoardViewController.h"
#import "GroupListViewController.h"
#import "DrillDownGroupListView.h"
#import "ProfileListViewController.h"
#import "ProfileDetailsViewController.h"
#define UIColorFromRGB(rgbValue) [UIColor \
colorWithRed:((float)((rgbValue & 0xFF0000) >> 16))/255.0 \
green:((float)((rgbValue & 0xFF00) >> 8))/255.0 \
blue:((float)(rgbValue & 0xFF))/255.0 alpha:1.0]
@implementation UINavigationBar (UINavigationBarCategory)
-(void)drawRect:(CGRect)rect{
UIImage *image = [UIImage imageNamed:@"NavBar BG.png"];
[image drawInRect:CGRectMake(0, 0, self.frame.size.width, self.frame.size.height)];
self.tintColor = UIColorFromRGB(0xFFD900);
}
@end
@implementation UIToolbar (UIToolbarCategory)
-(void)drawRect:(CGRect)rect{
UIImage *image = [UIImage imageNamed:@"NavBar BG.png"];
[image drawInRect:CGRectMake(0, 0, self.frame.size.width, self.frame.size.height)];
self.tintColor = UIColorFromRGB(0xFFD900);
[super drawRect:rect];
}
@end
@implementation Three20TestAppDelegate
@synthesize window=_window;
@synthesize managedObjectContext=__managedObjectContext;
@synthesize managedObjectModel=__managedObjectModel;
@synthesize persistentStoreCoordinator=__persistentStoreCoordinator;
- (void)applicationDidFinishLaunching:(UIApplication *)application {
TTNavigator *navigator = [TTNavigator navigator];
navigator.window = _window;
navigator.persistenceMode = TTNavigatorPersistenceModeAll;
navigator.supportsShakeToReload = YES;
[TTStyleSheet setGlobalStyleSheet:[[[BNDefaultStylesheet alloc] init] autorelease]];
TTURLMap *map = navigator.URLMap;
//startView(Log-in View)
[map from:@"tt://startView"
toSharedViewController:[StartViewController class]];
//Application's Menu
[map from:@"tt://mainMenu"
toSharedViewController:[MenuViewController class]];
//User's Profile module
[map from:@"tt://profilePage"
toSharedViewController:[JumpsiteProfilePage class]];
//Message Board module
[map from:@"tt://messageBoard"
toSharedViewController:[MessageBoardViewController class]];
[map from:@"tt://groupList"
toSharedViewController:[GroupListViewController class]];
[map from:@"tt://drillDownListView"
toSharedViewController:[DrillDownGroupListView class]];
//Profile List module
[map from:@"tt://profileList"
toViewController:[ProfileListViewController class]];
[map from:@"tt://profileDetailsList"
toSharedViewController:[ProfileDetailsViewController class]];
[navigator openURLAction:[TTURLAction actionWithURLPath:@"tt://startView"]];
// Override point for customization after application launch
[_window makeKeyAndVisible];
}
- (void)applicationWillResignActive:(UIApplication *)application
{
}
- (void)applicationDidEnterBackground:(UIApplication *)application
{
}
- (void)applicationWillEnterForeground:(UIApplication *)application
{
}
- (void)applicationDidBecomeActive:(UIApplication *)application
{
}
- (void)applicationWillTerminate:(UIApplication *)application
{
[self saveContext];
}
- (void)dealloc
{
[_window release];
[__managedObjectContext release];
[__managedObjectModel release];
[__persistentStoreCoordinator release];
[super dealloc];
}
- (void)awakeFromNib
{
}
- (void)saveContext
{
NSError *error = nil;
NSManagedObjectContext *managedObjectContext = self.managedObjectContext;
if (managedObjectContext != nil)
{
if ([managedObjectContext hasChanges] && ![managedObjectContext save:&error])
{
NSLog(@"Unresolved error %@, %@", error, [error userInfo]);
abort();
}
}
}
#pragma mark - Core Data stack
- (NSManagedObjectContext *)managedObjectContext
{
if (__managedObjectContext != nil)
{
return __managedObjectContext;
}
NSPersistentStoreCoordinator *coordinator = [self persistentStoreCoordinator];
if (coordinator != nil)
{
__managedObjectContext = [[NSManagedObjectContext alloc] init];
[__managedObjectContext setPersistentStoreCoordinator:coordinator];
}
return __managedObjectContext;
}
- (NSManagedObjectModel *)managedObjectModel
{
if (__managedObjectModel != nil)
{
return __managedObjectModel;
}
NSURL *modelURL = [[NSBundle mainBundle] URLForResource:@"Three20Test" withExtension:@"momd"];
__managedObjectModel = [[NSManagedObjectModel alloc] initWithContentsOfURL:modelURL];
return __managedObjectModel;
}
- (NSPersistentStoreCoordinator *)persistentStoreCoordinator
{
if (__persistentStoreCoordinator != nil)
{
return __persistentStoreCoordinator;
}
NSURL *storeURL = [[self applicationDocumentsDirectory] URLByAppendingPathComponent:@"Three20Test.sqlite"];
NSError *error = nil;
__persistentStoreCoordinator = [[NSPersistentStoreCoordinator alloc] initWithManagedObjectModel:[self managedObjectModel]];
if (![__persistentStoreCoordinator addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:storeURL options:nil error:&error])
{
NSLog(@"Unresolved error %@, %@", error, [error userInfo]);
abort();
}
return __persistentStoreCoordinator;
}
#pragma mark - Application's Documents directory
- (NSURL *)applicationDocumentsDirectory
{
return [[[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask] lastObject];
}
@end