0

アプリケーションのすべての画面に表示されるカスタムバーを、機能するボタンとともに表示したいと思います。CustomViewControllerをinitメソッドのクラスに追加すると、アプリケーションを分析するときにメモリリークが発生する可能性があることを除いて、すべてが正しく機能します。

[customViewControllerリリース]を離すと、CustomViewControllerのボタンが機能しなくなります。メモリリークなしでこのソリューションを実装するための適切な方法は何ですか。

#import "CustomViewController.h"

@implementation CustomViewController

- (IBAction)doSomething:(id)sender
{
    // Perform an action
}

@end

CustomViewControllerを作成するViewController:

- (id)initWithNibName:(NSString *)nibNameOrNil 
               bundle:(NSBundle *)nibBundleOrNil
{
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self) {
        CustomViewController *customViewController = [[CustomViewController alloc] initWithNibName:@"CustomViewController" bundle:nil];
        UIView *bar = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 30)];
        [bar addSubview:customViewController.view];
        [self.view addSubview:bar];
        [bar release];
    }
}
4

3 に答える 3

0

あなたはこれを間違った方法で実装しようとしているようです。実際に行う必要があるのは、CustomViewControllerを作成し、そのビューにツールバーを追加することです。次に、アプリ内の他のすべてのViewControllerをCustomViewControllerのサブクラスにする必要があります。

このスーパークラスを使用しているのがカスタムナビゲーションバーだけである場合は、アプリが使用しているUINavigationControllerでバーを直接スタイル設定することをお勧めします。

于 2012-04-24T18:54:51.680 に答える
0

適切な解決策は、コンテナビューを作成し、そのビュー内にカスタムタスクバーを配置することでした。

于 2013-01-19T02:33:26.950 に答える
-1

あなたはあなたのバーにボタンがあると言いましたか?それ自体が解放されたときにそれらのボタンを解放しますか?viewDidLoad関数を確認してください。

于 2012-04-24T18:27:10.667 に答える