2011-08-30 28 views
0

如何刪除一個項目後,將其添加到Pages-Array中?如何從TTLauncher/Three20中刪除一個項目?

我想在這裏:

launcherView.pages = [NSArray arrayWithObjects: 
         [NSArray arrayWithObjects: 
         [self launcherItemWithTitle:@"Pers. Starts." 
              image:@"bundle://animexx-72.png" 
               URL:@"tt://startseite"], 
         [self launcherItemWithTitle:@"ENS" 
              image:@"bundle://animexx-72.png" 
               URL:@"tt://ens"], 
         [self launcherItemWithTitle:@"Kontakte" 
              image:@"bundle://animexx-72.png" 
               URL:@"tt://kontakte"], 
         [self launcherItemWithTitle:@"Einstellungen" 
              image:@"bundle://animexx-72.png" 
               URL:@"tt://einstellungen"], 
         [self launcherItemWithTitle:@"Admin" 
              image:@"bundle://animexx-72.png" 
               URL:@"tt://admin"] 
         , nil] 
         , nil]; 


//Check if ENS-Admin enabled 
if ([SelfViewHandler IsENSAdminSet]) 
{ 
    TTLauncherItem* item; 
    item = [launcherView itemWithURL:@"tt://admin"]; 

    [launcherView removeItem:item animated:false]; 
} 

但該項目仍然存在。 (如果子句是真實的,檢查它在調試器和斷點)

回答

1

item = [launcherView itemWithURL:@"tt://admin"]實際上是不存在的物體在你TTLauncherView正因爲如此沒有被刪除。

每個對象在創建時都會得到一個引用,所以創建頁面數組時添加的對象和您在if語句中創建的對象是不同的。

要從TTLauncherView中刪除對象,您需要對其引用。你可以做這樣的事情:

TTLauncherItem* item = [self launcherItemWithTitle:@"Admin" 
             image:@"bundle://animexx-72.png" 
              URL:@"tt://admin"] 

launcherView.pages = [NSArray arrayWithObjects: 
         [NSArray arrayWithObjects: 
         [self launcherItemWithTitle:@"Pers. Starts." 
              image:@"bundle://animexx-72.png" 
               URL:@"tt://startseite"], 
         [self launcherItemWithTitle:@"ENS" 
              image:@"bundle://animexx-72.png" 
               URL:@"tt://ens"], 
         [self launcherItemWithTitle:@"Kontakte" 
              image:@"bundle://animexx-72.png" 
               URL:@"tt://kontakte"], 
         [self launcherItemWithTitle:@"Einstellungen" 
              image:@"bundle://animexx-72.png" 
               URL:@"tt://einstellungen"], 
         adminLauncherItem 
         , nil] 
         , nil]; 


//Check if ENS-Admin enabled 
if ([SelfViewHandler IsENSAdminSet]) 
{ 
    [launcherView removeItem:adminLauncherItem animated:false]; 
} 

這是有道理的有一個功能,移除基於URL的啓動項,像

- (void)removeItemWithURL:(NSURL*)url animated:(BOOL)animated { 

(但尚未:-))

相關問題