1

私はObjective Cの初心者です。

現在、メイン ウィンドウにビューを表示しようとしています。このビューにはボタンが含まれています。このボタンをクリックすると、何らかの理由で xcode がエラーをスローします。

うまくいけば、私が間違っていることを理解するのを手伝ってくれるでしょう。

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
    // Override point for customization after application launch.
    self.window.backgroundColor = [UIColor whiteColor];

    BtnView *btn = [[BtnView alloc] init];
    [self.window addSubview:btn.view];        
    [self.window makeKeyAndVisible];

    return YES;
}

ボタン ビューの viewController には、タッチアップ イベント h ファイルを認識するためのアクションがあります。

- (IBAction)touched:(id)sender;

そしてmファイルで

- (IBAction)touched:(id)sender {
    //actions ...
}

ボタンをタッチすると、次のエラーが表示されます。

ここに画像の説明を入力 どうしたの?

m ファイル:

ここに画像の説明を入力

h ファイル: ここに画像の説明を入力

4

4 に答える 4

3

このプロジェクトで ARC が有効になっていると仮定します。

didFinishLaunchingWithOptions:割り当てられたオブジェクトから戻るとbtn、そのメソッド内でのみ定義されているローカル変数に割り当てるため、解放されます。クラスBtnView *btnstrongプロパティを作成すると、ボタンの押下を処理するために残ります。(それへの参照で使用することを忘れないでくださいself.btn。)

(しかし、私は興味があります。最初にメイン ビューにボタンを配置して、追加のコントローラーとサブビューについて心配しないでください。)

于 2012-06-28T11:14:15.813 に答える
0
- (IBAction)touched

送信者を使用せずに試してください

于 2012-06-28T11:00:28.913 に答える
0

.xib ファイルでは、ボタンをファイルの所有者に接続できます。

1) ボタンを右クリックします。すると、1 つのウィンドウが表示されます。そのウィンドウで確認Touch Up Insideし、小さな円をクリックしてファイルの所有者にドラッグし、に接続しtouchedます。お役に立てると思います。

于 2012-06-28T11:02:51.720 に答える
0

UIViewController 全体をボタンにする必要がある特定の理由はありますか? これを行う従来の方法は、UIViewController をコントローラーとして使用し、UIButton を viewDidLoad メソッドのビューのサブビューとして配置し、それを目的のメソッドに接続し、必要に応じて画面全体に配置することです。外観をカスタマイズする必要がある場合は、UIButton でも行うことができます。

于 2012-06-28T11:20:54.480 に答える