[map from:@"tt://webPage/(initWithPage:)" toSharedVIEwController:[WebPageController class]];
并在WebPageController中
- (ID) initWithPage:(WebPage)page{ if (self = [super init]) { ...
然后我在我的代码中多次调用了url
tt://webPage/1tt://webPage/2tt://webPage/1 (still called the initWithPage: everytime,not cached)
为什么它不是缓存,因为它是一个SharedVIEwController?
解决方法 我相信这是发生在你身上的,因为TTNaviagtor在iOS 5上被破坏了.请参阅 https://github.com/facebook/three20/pull/719/files.您是否尝试在iOS 4上运行相同的代码并获得相同的结果?我给你的建议是停止使用TTNaviagtor.您仍然可以通过在本机ios方法中推送和d出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是一个糟糕的设计模式,而苹果以不同的心态设计了他们的导航系统.
总结以上是内存溢出为你收集整理的iphone – toSharedViewController不能重用现有的控制器全部内容,希望文章能够帮你解决iphone – toSharedViewController不能重用现有的控制器所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)