0
- (void)createBarButtons
{
    UIBarButtonItem *myCheckButton = [[UIBarButtonItem alloc] initWithTitle:@"Check Records" style:UIBarButtonItemStylePlain target:self action:@selector(checkRecordsAction)];
    UIBarButtonItem *mySaveButton = [[UIBarButtonItem alloc] initWithTitle:@"Save" style:UIBarButtonItemStylePlain target:self action:@selector(saveAction)];
    [mySaveButton setTintColor:[UIColor colorWithRed:34.0/255.0 green:97.0/255.0 blue:221.0/255.0 alpha:1]];
    NSArray *myButtonArray = [[NSArray alloc]initWithObjects:mySaveButton, myCheckButton,nil];
    self.navigationItem.rightBarButtonItems = myButtonArray;
}

この質問があまりにもローカライズされたカテゴリに該当するかどうかはわかりません。しかし、ここで私を助けてください。あなたが見るように、私は2つのバーボタンアイテムを作成しました。保存はデータをCoreDataに保存するだけで、問題なく機能します。ただし、チェックレコードは新しいUITableviewcontrollerを起動する必要があります。

- (void)checkRecordsAction
{
NSLog(@"the new stack action");
ITMSyncRecordsTVC *syncRecords  = [[ITMSyncRecordsTVC alloc]init];
//  [self presentViewController:syncRecords animated:YES completion:^{
//  self.navigationController.view.superview.bounds = CGRectMake(0, 0, 250, 250);}];
[self.navigationController pushViewController:syncRecords animated:YES];
}

ITMSyncRecordsTVCTableViewController「戻る」ボタンが付いています。したがって、チェックレコードをクリックすると、tableviewコントローラーが起動しますが、値が表示されず、「戻る」バーボタンが表示されません。今まで私はセグエとストーリーボードをうまく使ってきました。しかし、私が知らないそれらなしで新しいビューコントローラを起動するにはどうすればよいですか?私の最初のiosへの飛躍はios6です。知らないことが欠けています。そこで、新しいTableViewControllerを呼び出す/起動する方法を教えてください。アンドロイドでは、トリックを行うインテントがありました。さらに詳しい情報が必要な場合はお知らせください。ありがとう...編集:だから私は自分のcheckRecordsActionコードを編集しました。

編集 :

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath

{{

ITMOrdersVC *ordersVC = [[ITMOrdersVC alloc]init];
NSLog(@"at line 188 %d",indexPath.row);
if(indexPath.row < self.salesOrdersArray.count)
{
    ordersVC.salesOrder = [self.salesOrdersArray objectAtIndex:indexPath.row];
    NSLog(@"the sales purchase order number is %@",ordersVC.salesOrder.purchaseOrderNumber);

    NSLog(@"done - 140");
    [self.navigationController pushViewController:ordersVC animated:YES];
}
}

したがって、ITMSyncRecordsTVCテーブルビューコントローラで行を選択すると、上記のようになります。左側に「戻る」バーボタンがあり、動的に生成された2つのバーボタンがある新しいITMOrdersVC画面が表示されます。動的に生成された2つのバーボタンが表示されますが、戻ることはできません。行をクリックすると、salesOrderオブジェクトを渡す前の画面に「戻る」と思いました。次のステップは、TVCからsalesorderオブジェクトを取得してからロードするかどうかを確認することでした。つまり、基本的に2画面のみです。最初の画面(保存、同期レコードの確認)。2番目の画面をクリックします。a。)戻る(最初の画面に移動します。何もしません)またはb。)2番目の画面の行をクリックし、バーボタンなしで最初の画面にデータを入力します。不明な場合は質問してください。

4

1 に答える 1

1

ストーリーボードを使用して新しいテーブルビューコントローラを起動するには、次のようにします。

  1. メインシーンをナビゲーションコントローラーに埋め込みます。

    メインシーンをnavコントローラーに埋め込む

  2. メインコントローラーから2番目のコントローラーへのプッシュセグエが必要です。したがって、コントロールキーを押しながらビューコントローラアイコン(メインシーンの下のバーにあります)から次のシーンにドラッグします。

    プッシュセグエを追加

  3. 次のようになります(宛先テーブルビューのナビゲーションバーの外観に注意してください)。

    目的地にはナビゲーションバーがあります

  4. 次に、セグエを選択し、それに「ストーリーボード識別子」を付けます。

    セグエストーリーボードIDを与える

  5. そして今、そのシーンに移行するためのコードは次のようになります。

checkRecordsAction:_

- (void)checkRecordsAction
{
    NSLog(@"the new stack action");

    [self performSegueWithIdentifier:@"PushSegue" sender:self];
}

アップデート:

ちなみに、完全な開示のために、プッシュセグエに代わるものがあります。その次のシーン自体に「ストーリーボードID」を指定すると、次のコードを使用できます(明らかに"insertNextScenesStoryboardIdHere"、次のシーンに指定した識別子に置き換えます。

- (void)checkRecordsAction
{
    NSLog(@"the new stack action");

    UIViewController *controller = [self.storyboard instantiateViewControllerWithIdentifier:@"insertNextScenesStoryboardIdHere"];
    [self.navigationController pushViewController:controller animated:YES];
}

個人的にはこれはあまり好きではありません。ストーリーボードにはセグエなしでシーンが浮かんでいるため、コードによってビューコントローラー間の遷移の性質とストーリーボード内のすべてのものなどが指定されていますが、別のアプローチ。

于 2012-12-21T19:05:52.373 に答える