0

私は xcode を使って iphone 用のアプリを作成することを学んでいます。私はこれを約2〜3週間行っているので、まったく新しいものです。現在、さまざまな種類のカウンターを含むカウンターを作成することにしました。各カウンターは独自のビューにあります。それらの間のナビゲーションは、タブ バーを介して行われます。

4 つのビューがあり、最後のビューには、他の 3 つのビューの各カウンターへのリセット ボタンが含まれているはずです。

出来ますか?その場合、私を正しい方向に向けていただけませんか?

現在、これを使用して同じビューからカウンターをリセットしています

-(IBAction)Reset:(id)sender{
    counter = 0;
    count.text = [NSString stringWithFormat:@"%i", counter]; 

ビュー 1 のカウンターをリセットするために、ビュー 4 から上記の操作を行うことはできますか?

4

3 に答える 3

0

ジョン、あなたが NSUserDefaults を見ているとは思えません。そして、これがあなたの最初の課題である場合、教師は眉をひそめるでしょう。

正直なところ、上記は MVC の優れた基本に慣れて回避するための悪い習慣だと思います。あなたはこれに慣れていないように見えるので、優れた MVC の基本に集中する必要があります。ピラミッドの最上部にあるビュー コントローラーは、そのビューを制御します。この場合、UITabBarController が一連の viewController (タブ) を制御し、これらの ViewController がビューを制御するレイヤーがもう 1 つあります。

UITabBarController の「viewControllers」プロパティを使用して、これらの viewController (タブ) 間を移動します。

これらの viewController (UIViewController サブクラス) のそれぞれを IB とコードで作成し、UITabBarController にアタッチする必要があります。次に、IB ID インスペクターでこれらのビューコントローラーのクラスを、対応する UIViewController サブクラス名に変更する必要があります。

次に、ラベルとアクションを適切なビュー コントローラーに追加し、それらをコード内の対応するビュー コントローラーにフックします。

また、viewController 4 から [self.tabBarController.viewControllers objectAtIndex:1] を使用して、ビュー 1 のカウンターをリセットできます。

ここにはコードのショートカットはありません。適切な MVC を学習しないと、後で噛み付きます。

お役に立てれば

于 2013-02-19T13:50:42.467 に答える
-1
    - (void)refresh
    {
   NSLog(@"Refresh Data");
   [[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"data_refresh"];
   [[NSUserDefaults standardUserDefaults] synchronize];
   }

//このメソッドを3つのビューすべてに追加します

   - (void)viewWillAppear:(BOOL)animated
      {
       [super viewWillAppear:animated];

           if ([[NSUserDefaults standardUserDefaults] objectForKey:@"data_refresh"] && [[[NSUserDefaults standardUserDefaults] objectForKey:@"data_refresh"] boolValue]) {
            count.text = @"0"; // Here you can modify the data as you expected.
         [[NSUserDefaults standardUserDefaults] removeObjectForKey:@"data_refresh"];
         [[NSUserDefaults standardUserDefaults] synchronize];
       }
     }
于 2013-02-19T13:29:30.710 に答える
-1

はい、可能です。しかし、あなたの質問はそれほど明確ではありません。私の理解によると、更新と呼ばれるボタンを持つ4番目のビューと、ボタンをクリックすると、残りの3つのビューは、それ以降のコンテンツに置き換えられる必要があります。

Refresh button簡単な方法で、4 番目のビューでをクリックしてreleaseUITabbarControllerもう一度追加します。

または、3 画面すべてで Refresh ViewUITbabarController Delegateメソッドを呼び出す必要があります。

于 2013-02-19T12:54:48.353 に答える