How*_*ard 8 iphone xcode objective-c three20 ios
我的URL地图如下:
[map from:@"tt://webPage/(initWithPage:)" toSharedViewController:[WebPageController class]];
Run Code Online (Sandbox Code Playgroud)
并在 WebPageController
- (id) initWithPage:(WebPage)page
{
if (self = [super init])
{
...
Run Code Online (Sandbox Code Playgroud)
然后我在我的代码中多次调用了url
tt://webPage/1
tt://webPage/2
tt://webPage/1 (still called the initWithPage: everytime, not cached)
Run Code Online (Sandbox Code Playgroud)
为什么它不是缓存,因为它是一个SharedViewController?
我相信您正在发生这种情况,因为TTNaviagtoriOS 5 上已损坏。请参阅https://github.com/facebook/ Three20/pull/719/files 。您是否尝试过在 iOS 4 上运行相同的代码并获得相同的结果?
我对您的建议是停止使用TTNaviagtor。TTViewController您仍然可以通过本机 ios 方法中的推送和弹出来使用 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;
Run Code Online (Sandbox Code Playgroud)
和
///////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////
@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;
}
Run Code Online (Sandbox Code Playgroud)
TTViewController然后您可以将任何(或您自己的子类)推送和TTViewController弹出到_masterNavController. 就我个人而言,我认为 TTNavigator 是一个糟糕的设计模式,苹果以不同的思维方式设计了他们的导航系统。
| 归档时间: |
|
| 查看次数: |
293 次 |
| 最近记录: |