2011-08-30 4 views
0

페이지 배열에 항목을 추가 한 후 항목을 제거하는 방법은 무엇입니까?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]; 
} 

을하지만 항목은 아직 거기 :

난 여기를 시도했다. (If-Clause가 true 인 경우 디버거 및 중단 점에서 확인)

답변

1

item = [launcherView itemWithURL:@"tt://admin"] 개체는 실제로 TTLauncherView에 없으며 그 때문에 제거되지 않습니다.

각 객체는 생성 될 때 참조를 가져 오므로 페이지 배열을 만들 때 추가하는 객체와 if 문에서 작성중인 객체가 다릅니다.

TTLauncherView에서 개체를 제거하려면 해당 개체에 대한 참조가 필요합니다.

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

처럼

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을 기반으로 실행 항목을 제거하는 기능을 가지고 의미가 있습니다 (그러나 아직이없는 :-)) : 당신은 그런 식으로 뭔가를 할 수

관련 문제