iphone – toSharedViewController不能重用现有的控制器

iphone – toSharedViewController不能重用现有的控制器,第1张

概述我的URL地图如下: [map from:@"tt://webPage/(initWithPage:)" toSharedViewController:[WebPageController class]]; 并在WebPageController中 - (id) initWithPage:(WebPage)page{ if (self = [super init]) { 我的URL地图如下:

[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不能重用现有的控制器所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1060414.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-25
下一篇 2022-05-25

发表评论

登录后才能评论

评论列表(0条)

保存