0

FlipsideViewController を閉じる前に、これらの値を持っています

shours
sminutes
sseconds
srecharge
change

宣言から

int shours;
int sminutes;
int sseconds;
int srecharge;
bool change;

これらの変数をこれらの他の変数で別の UIViewController (MainViewController) に渡したい

mhours
mminutes
mseconds
mrecharge
mchange

これを行う最も簡単な方法は何ですか?

4

3 に答える 3

0

これらの値を保持するクラスを作成します。次に、このオブジェクトをビュー コントローラー間で渡します。

このようなもの:

インターフェイス ファイル:

//
//  MyObject.h
//  SOObjectPassing
//
//  Created by Wilson, LJ on 11/15/12.
//  Copyright (c) 2012 Arkansas Children's Hospital. All rights reserved.
//

#import <Foundation/Foundation.h>

@interface MyObject : NSObject {
    int shours;
    int sminutes;
    int sseconds;
    int srecharge;
    bool change;
}

@property (nonatomic, assign) int shours;
@property (nonatomic, assign) int sminutes;
@property (nonatomic, assign) int sseconds;
@property (nonatomic, assign) int srecharge;
@property (nonatomic, assign) BOOL change;

-(id) initWithHours:(int)hours
            minutes:(int)minutes
            seconds:(int)seconds
           recharge:(int)recharge
             changed:(BOOL)changed;

@end

実装ファイル:

//
//  MyObject.m
//  SOObjectPassing
//
//  Created by Wilson, LJ on 11/15/12.
//  Copyright (c) 2012 Arkansas Children's Hospital. All rights reserved.
//

#import "MyObject.h"


@implementation MyObject
@synthesize shours = _shours;
@synthesize sminutes = _sminutes;
@synthesize sseconds = _sseconds;
@synthesize srecharge = _srecharge;
@synthesize change = _change;

-(id) initWithHours:(int)hours
            minutes:(int)minutes
            seconds:(int)seconds
           recharge:(int)recharge
             changed:(BOOL)changed {

    if ((self = [super init])) {
        _shours = hours;
        _sminutes = minutes;
        _sseconds = seconds;
        _srecharge = recharge;
        _change = changed;
    }

    return self;
}
@end

そして、次のようにオブジェクトをインスタンス化します。

MyObject *myObject = [[MyObject alloc] initWithHours:2
                                                 minutes:3
                                                 seconds:4
                                                recharge:1
                                                 changed:NO];

次に、そのオブジェクト全体を他の VC に渡すだけです。

これを説明するサンプル プロジェクトを次に示します。

于 2012-11-15T16:08:04.957 に答える
0

これらの変数を保持する「モデル」クラスを作成し、そのモデル クラスをあるビュー コントローラーから次のビュー コントローラーに渡すだけです。ビュー 1 からビュー 2 への移行中にビュー 1 とビュー 2 でリンクされると、ビュー 2 からビュー 1 に戻るときに自動的に更新されます。@property (assign) int shours を使用して、セッターとゲッターを作成します。

このアプローチでは、セグエを使用しても問題なく機能します。NSUserDefaults または NSNotificationCenter を使用する必要はありません。

于 2012-11-15T15:59:41.510 に答える
0

でカスタム オブジェクト プロパティを作成してMainViewControllerで設定しFlipsideViewControllerないと、何らかの理由でそれを行うことができません。これらの値を保持するオブジェクトを作成し、 に配置してNSUserDefaults読み取りますMainViewController

于 2012-11-15T14:24:20.687 に答える