2009-08-24 7 views
0

私はUITableviews、スタック、コンポーネントの削除、スタック上のコンポーネントの隠蔽に関する質問があります。 最初にコンポーネント(ボタン)を追加する関数があります。removeFromSuperView ...どのようにすべてのコンポーネントをすべてのコントローラビューから削除できますか?

-(void)addComponent 
{ 
[self.navigationController.view addSubview:playButton]; 
} 

私はそういい、これまでのところ私の

didSelectRowAtindexPath

でこの関数を呼び出します。

「楽しい」という部分があります。
私はスタック

-(void)lastView:(id)sender 
{ 
selectedRow = [self.tableView indexPathForSelectedRow]; 

NSUInteger row = selectedRow.row; 

NSUInteger section = selectedRow.section; 

[self.tableView selectRowAtIndexPath:[NSIndexPath indexPathForRow:row inSection:section] animated:YES scrollPosition:UITableViewScrollPositionBottom]; 

[self tableView:[self tableView] didSelectRowAtIndexPath:selectedRow]; 

NSDictionary *dictionary = [self.tableDataSource objectAtIndex:selectedRow.row]; 

//Get the children of the present item. 

NSArray *Children = [dictionary objectForKey:@"Children"]; 

rvController = [[RootViewController alloc] initWithNibName:@"RootViewController" bundle:[NSBundle mainBundle]]; 

//Increment the Current View 

rvController.CurrentLevel += 1; 

//Push the new table view on the stack 

[self.navigationController pushViewController:rvController animated:NO]; 

rvController.tableDataSource = Children; 

[rvController release]; 

} 

} 

上の次のコントローラをプッシュbarbuttonitem

に添付されている別の機能を持っている私は、画面からのplayButtonを削除したいが、残念ながらremoveFromSuperViewは動作しません。私はそれが私のボタンを完全に削除するので、スタックに新しいrvControllerのプッシュと関係があると思います。

誰かが、スタック上のすべてのビューからボタンが削除されているように見えるかどうかについての手掛かりはありませんか?

編集:私はここにいくつかの偽のコードを入れて(それは別のViewControllerをプッシュします)場合はここで

は別の「面白い」の部分 である。このような :

-(void)lastView:(UITableview *)tableView selectingRow:(NSIndexPath *)indexPath 
    { 

    NSDictionary *dictionary = [self.tableDataSource objectAtIndex:indexPath.row]; 

    //Get the children of the present item. 

    NSArray *Children = [dictionary objectForKey:@"Children"]; 

    rvController = [[RootViewController alloc] initWithNibName:@"RootViewController" bundle:[NSBundle mainBundle]]; 

    //Increment the Current View 

    rvController.CurrentLevel += 1; 

    //Push the new table view on the stack 

    [self.navigationController pushViewController:rvController animated:NO]; 

    rvController.tableDataSource = Children; 

    [rvController release]; 

    } 

    } 

はその後、それが動作しているようです。私は本当に確信していませんが、それは動作しているように "見える"ことはありません。

+0

ボタンのインスタンス数はいくつですか? – Daniel

+0

私は1つのインスタンスを作成しました –

答えて

0

私はこのような機能を書くと面白いですね。

selectedRow = [self.tableView indexPathForSelectedRow]; 

NSDictionary *dictionary = [self.tableDataSource objectAtIndex:selectedRow.row]; 

//Get the children of the present item. 

NSArray *Children = [dictionary objectForKey:@"Children"]; 

rvController = [[RootViewController alloc] initWithNibName:@"RootViewController" bundle:[NSBundle mainBundle]]; 

//Increment the Current View 

rvController.CurrentLevel += 1; 

//Set the title; 

rvController.CurrentTitle = [dictionary objectForKey:@"Title"]; 

//Push the new table view on the stack 

[self.navigationController pushViewController:rvController animated:YES]; 

rvController.tableDataSource = Children; 

[rvController release]; 

うーん、私はまだしかし、これは今のために行う必要があります完全に満足していません。

関連する問題