2009-08-23 5 views
0

なぜ私は以下のサブビューがうまくいかないのか混乱しています。addSubview insertSubview aboveSubviewビットがうまくいかない理由について混乱しています

私はnavigationControllerにいくつかの(サブビュー)を追加していますが、そのすべてがうまく機能します。

-(UITableView *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { 

... 
... 

    [self.navigationController.view addSubview:ImageView]; 
    [self.navigationController.view addSubview:toolbar]; 

私は私のツールバー上の別のツールバーや画像を追加したい私のアプリの中でいくつかの点を追加します。

ので、私はここで間違ってやっている人を知っています... は、私が何か他のものを使用している必要があります ..さんは、私はしかし、これは動作しません。この

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 
    { 
    ... 
    ... 

     [self.navigationController.view insertSubview:NewImageView aboveSubview:toolbar]; 
//crucial of course [edit] 
      rvController = [RootViewController alloc] initWithNibName:@"RootViewController" bundle:[NSBundle] mainBundle]; 
rvController.CurrentLevel += 1; 
rvController.CurrentTitle = [dictionary objectForKey:@"Title"]; 
[self.navigationController pushViewController:rvController animated:YES]; 
rvController.tableDataSource = Children; 
[rvController release]; 

ような何かをやっているとしましょうaddSubviewの代わりに、または別の場所で問題がありますか?

答えて

1

あなたが投稿したものから、動作するはずです。

しかし、その他の問題がいくつかあります。最初に、オブジェクトのインスタンスを表すvaribalesが小文字で始まるという規則があります。したがってImageViewNewImageViewは、imageViewnewImageViewとなるはずです。

tableView:didSelectRowAtIndexPath:の方法newImageViewとツールバーの両方が有効であることを確認します。それらはヘッダファイルにありますか?

これを試してみて、エラーの出ている場所を確認:;)あなたは私の編集で見ることができるあなたの反応のための

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
... 
... 
    NSAssert(self.navigationController.view,@"WTF? self.navigationController.view is nil"); 
    NSAssert([self.navigationController.view superview],@"WTF? lf.navigationController.view is not onscreen"); 
    NSAssert(newImageView,@"WTF? newImageView is nil"); 
    NSAssert(toolbar,@"WTF? toolbar is nil"); 
    NSAssert([toolbar superview],@"WTF? toolbar is on in the view"); 

    [self.navigationController.view insertSubview:newImageView aboveSubview:toolbar]; 
} 
+0

おかげで..あなたは正しかった、私はちょうどわずかなミスを犯したと間違って何もありません。私は新しいviewControllerをプッシュしました... –

+0

元の画面のツールバーの上に新しい画像/ツールバーを表示しようとしていますか、または新しい画像/ツールバーが表示されますか?または両方? –

関連する問題