0

私のiPhoneアプリには、呼び出されたものViewController1が含まれており、ストーリーボードのビューに追加して、アウトレットを接続しました。UILabelselectedBook

私は別のView Controllerを呼び出してViewController2おり、からいくつかのデータを渡しViewController2ViewController1のテキストはUILabelそれらの1つです。

で、ViewController1次のコードを書きました。

ViewController1.hで

@interface ViewController1 : UIViewController{

  IBOutlet UILabel *selectedBook;

  NSString *BookName;
  NSString *BookCover;
  NSString *BookAbout;
}

@property (nonatomic, retain) NSString *BookName;
@property (nonatomic, retain) NSString *BookCover;
@property (nonatomic, retain) NSString *BookAbout;

-(void) setTheSelectedBook:(NSString *)bookName bookCover:(NSString *)bookCover bookAbout:(NSString *)bookAbout userID:(int)userID;

ViewController1.m 内

-(void) setTheSelectedBook:(NSString *)bookName bookCover:(NSString *)bookCover bookAbout:(NSString *)bookAbout userID:(int)userID
{
    BookName = bookName;
    BookCover = bookCover;
    BookAbout = bookAbout;

    NSLog(@"in setTheSelectedBook, BookName: %@ - BookCover: %@ - BookAbout: %@ - userID: %d", BookName, BookCover, BookAbout, userID);

    selectedBook.text = bookName;
}

で、viewController2次のコードを書きました。

ViewController1 *viewController = [self.storyboard instantiateViewControllerWithIdentifier:@"Suggest"];
[viewController setTheSelectedBook:@"MybookName" bookCover:@"MyBookCover" bookAbout:@"MuBookAbout" userID:1];

私のデータは正しく渡され、出力に表示されますが、問題はUILabelテキストが更新されていないことです。つまり、この行

selectedBook.text = bookName;

動作しません。

として書いてみましたがselectedBook.text = @"someText";、これは機能します。

仕事をするために何が欠けているのか理解できませんselectedBook.text = bookName;か?この問題で誰かが私を助けてくれることを願っています。

前もって感謝します。

4

2 に答える 2

0

あなたのコードは少し混乱しています。変数を大文字で始めないでください。またはBookNameである必要があります。それが問題の一つだと思います。bookName_bookName

代わりに、変数を使用して Book クラスを作成する場合:

@property (copy) NSString *name;
@property (copy) NSString *cover;
@property (copy) NSString *about;

次に、viewController1Book-class をインスタンス化してブックを作成し、その変数を設定すると、Book-object を に送信できますviewController2

それはおそらくあなたにとってより簡単でしょう。

独自のコードを変更したいだけの場合は、次を試すことができます。

あなたのhファイルで:

@property (copy) NSString *BookName;
@property (copy) NSString *BookCover;
@property (copy) NSString *BookAbout;

そしてあなたのmファイルで:

-(void) setTheSelectedBook:(NSString *)bookName bookCover:(NSString *)bookCover bookAbout:(NSString *)bookAbout userID:(int)userID
{
    _BookName = bookName;
    _BookCover = bookCover;
    _BookAbout = bookAbout;

    NSLog(@"in setTheSelectedBook, BookName: %@ - BookCover: %@ - BookAbout: %@ - userID: %d", BookName, BookCover, BookAbout, userID);

    selectedBook.text = _BookName;
}
于 2013-11-13T10:11:23.700 に答える