0

わかりましたので、ビュー間でfloat変数を渡すことに取り組んでいるアプリの一部があり、すべて問題ありませんでしたが、すべてのボタンで少し面倒に見えました。ほぼ完成しているので、既存のビューにタブバーを追加してクリーンアップできるかどうかを確認したかったのです。これに関する素晴らしいチュートリアルを見つけて、NSLogで選択していたタブをリンクして報告するようにしたので、同じ機能に使用していたボタンのコードを貼り付けました。すべてが少しおかしくなり、いくつかの新しい変数を作成する必要があり、最後に1つのエラーが発生しました。初めてpatternRafterを呼び出すと、期待される式が呼び出されます

- (void)tabBar:(UITabBar *)tabBar didSelectItem:(UITabBarItem *)item {
NSLog(@"didSelectItem: %d", item.tag);

[self activateTab:item.tag];
}

- (void)activateTab:(int)index {
switch (index) {
    case 1:

        patternRafter *patternRafter1 = [[patternRafter  alloc]initWithNibName:nil bundle:nil];

        BuildNavAppDelegate *buildNavDelegate = (BuildNavAppDelegate *)[[UIApplication sharedApplication]delegate];

        buildNavDelegate.TLPMR = [TLMR text];
        buildNavDelegate.comRaftBirdPassed = [comBird text];
        buildNavDelegate.comRaftLengthPassed = [comRafter text];
        buildNavDelegate.raftThicknessPassed = [rafterWidth text];



        [self presentModalViewController:patternRafter1 animated:YES]; 
        break;
    /*case 2:

        buildersSquare *square1 = [[buildersSquare alloc]initWithNibName:nil bundle:nil];

        BuildNavAppDelegate *buildNavDelegate = (BuildNavAppDelegate *)[[UIApplication sharedApplication]delegate];

        buildNavDelegate.TLPMR = [TLMR text];
        buildNavDelegate.comRaftBirdPassed = [comBird text];
        buildNavDelegate.comRaftLengthPassed = [comRafter text];
        buildNavDelegate.raftThicknessPassed = [rafterWidth text];



        [self presentModalViewController:square1 animated:YES];         
        break;
    case 3:

        self.tab2ViewController =[[tab2 alloc] initWithNibName:@"tab2" bundle:nil];
        [self.view insertSubview:tab2ViewController.view belowSubview:tabbar1];
        if (currentViewController != nil)
            [currentViewController.view removeFromSuperview];
        currentViewController = tab2ViewController;         
        break;*/
    default:
        break;
}

}

任意の助けをいただければ幸いです。ありがとうございます。私はまだ新しいユーザーなので、写真を投稿できないことに気付きました。誰かがそれをチェックしたい場合は、ここにリンクがあります。 http://dl.dropbox.com/u/72193343/Screen%20shot%202012-05-18%20at%209.22.48%20AM.png

4

2 に答える 2

0

patternRafter は PatternRafter という名前のクラスのインスタンスだと思いますか? その場合、その行は次のようになります。

PatternRafter *patternRafter1 = [[PatternRafter alloc] initWithNibName:nil bundle:nil];

Obj-C では大文字と小文字が区別され、命名規則では ivar は小文字で始まり、クラスは大文字で始まる必要があります。

于 2012-05-18T17:40:22.653 に答える
0
- (void)activateTab:(int)index {
switch (index) {
case 1://igot it to work by opening brackets here{

    patternRafter *patternRafter1 = [[patternRafter  alloc]initWithNibName:nil bundle:nil];

    BuildNavAppDelegate *buildNavDelegate = (BuildNavAppDelegate *)[[UIApplication sharedApplication]delegate];

    buildNavDelegate.TLPMR = [TLMR text];
    buildNavDelegate.comRaftBirdPassed = [comBird text];
    buildNavDelegate.comRaftLengthPassed = [comRafter text];
    buildNavDelegate.raftThicknessPassed = [rafterWidth text];



    [self presentModalViewController:patternRafter1 animated:YES]; //local declaration of 'patternRafter1' hides instance variable
    break;//and closing here} 
case 2:

正常に動作していますが、警告を受けています -- 「patternRafter1」のローカル宣言がインスタンス変数を隠しています

于 2012-05-19T16:05:55.397 に答える