我相信這是發生在您身上的,因爲TTNaviagtor
在iOS 5上壞了。請參閱https://github.com/facebook/three20/pull/719/files。你有沒有嘗試在iOS 4上運行相同的代碼,並得到相同的結果?
我向你推薦的是停止使用TTNaviagtor
。您仍然可以通過在本地ios方法中推送並彈出TTViewController
來使用three20庫。
這裏是在您的應用程序委託更換TTNaviagtor
一個例子:
@interface AppDelegate : NSObject <UIApplicationDelegate> {
UIWindow* _window;
TTBaseNavigationController* _masterNavController;
WebPageController* _web1Controller;
WebPageController* _web2Controller;
}
@property(nonatomic, retain) UIWindow* window;
@property(nonatomic, retain) TTBaseNavigationController* masterNavController;
@property(nonatomic, retain) WebPageController* web1Controller;
@property(nonatomic, retain) WebPageController* web2Controller;
而且
///////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////
@implementation AppDelegate
@synthesize window = _window;
@synthesize masterNavController = _masterNavController;
@synthesize web1Controller = _web1Controller;
@synthesize web2Controller = web2Controller;
///////////////////////////////////////////////////////////////////////////////////////////////////
- (BOOL)application:(UIApplication *)application
didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
_window = [[UIWindow alloc] initWithFrame:TTScreenBounds()];
TTViewController* controller = [[[MasterViewController alloc] init] autorelease];
_masterNavController = [[TTBaseNavigationController alloc] initWithRootViewController:controller];
[_window addSubview:_masterNavController.view];
}
[_window makeKeyAndVisible];
return YES;
}
那麼你可以把和彈出任何TTViewController
(或您自己的TTViewController
子類)進入_masterNavController
。就個人而言,我認爲TTNavigator是一種糟糕的設計模式,蘋果公司以不同的思維方式設計了他們的導航系統。
執行什麼'WebPage'通過typedef來? – tonklon 2012-02-12 20:39:27
@tonklon,它只是一個隨機ENUM – Howard 2012-02-13 17:07:47
呵?........... – HelmiB 2012-02-17 11:37:27