0

だから私は誰もがセグエの準備で使用する標準的な方法を持っています. 論理的に考えると、「準備」とは、セグエが呼び出される前にこれを行うことを意味します。しかし、すべてに 1 つのセグエがある 3 つのテーブル セルを設定しましたSecondViewController。完全に動作することをテストすると、エラーは発生しません。

ユーザーが最初のセルを選択したときにラベル「labeltje」が別のテキスト値を取得することをこのアプリに追加したい場合、これは起こりません。もちろん、このコードはTableViewController.mファイルにありDagenViewController、2 番目のコントローラーである にはありません。

何が表示されないのですか? Dagenviewcontroller輸入品等問題ありません。これはコードの prepareforsegue ビットです。

- (void) prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    DagenViewController *secondVC = (DagenViewController *)segue.destinationViewController;
    if([segue.identifier isEqualToString:@"vrijdagSegue"])
    {
        NSString *vrijdag = @"vrijdag";
        secondVC.labeltje.text = vrijdag;
    }
    else if([segue.identifier isEqualToString:@"zaterdagSegue"])
    {
        NSString *zaterdag = @"zaterdag";
        secondVC.labeltje.text = zaterdag;
    }
    else {
        NSString *zondag = @"zondag";
        secondVC.labeltje.text = zondag;
    }
}

または、どのセグエが使用されたかをチェックするViewDidLoadメソッドに何かを入れる方法はありますか?SecondViewController

読んでくれてありがとう。

4

2 に答える 2

1

prepareForSegue:sender:呼び出されると、View Controller のビューがまだ読み込まれていないため、nil のラベルにアクセスしています。で設定する文字列プロパティを作成prepareForSegue:sender:し、DagenViewController viewDidLoadメソッドでその文字列プロパティからラベルのテキストを設定します。

于 2013-06-10T13:53:38.060 に答える
1

このようにしてみてください:

DagenViewController.h ファイル

@property (strong, strong) NSString *preText

DagenViewController.m ファイル

- (void) viewDidLoad
{
    self.labeltje.text = preText;
}

あなたの方法で

- (void) prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    DagenViewController *secondVC = (DagenViewController *)segue.destinationViewController;
    if([segue.identifier isEqualToString:@"vrijdagSegue"])
    {
        secondVC.preText = @"vrijdag";
    }
    else if([segue.identifier isEqualToString:@"zaterdagSegue"])
    {
         secondVC.preText = @"zaterdag";
    }
    else {
         secondVC.preText = @"zondag";
    }
}
于 2013-06-10T14:31:33.860 に答える