0

splitViewのdetailViewControllerに複数のviewControllerをロードする必要があります。何かのようなものここに画像の説明を入力してください

アラームがオンのとき、detailViewで関連するViewControllerをプッシュできるようにします。左側面図はuitableviewです。

私のコードはAppDelegate.mにあります

#import "splitDetailViewController.h"
#import "splitTableViewController.h"

  - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
  {
    self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];
    // Override point for customization after application launch.

  splitTable=[[splitTableViewController alloc]initWithStyle:UITableViewStyleGrouped];
  UINavigationController *splitTableNav=[[UINavigationController alloc]initWithRootViewController:splitTable];

  splitDetails=[[splitDetailViewController alloc]initWithNibName:nil bundle:nil];
  UINavigationController *splitDetailNav=[[UINavigationController alloc]initWithRootViewController:splitDetails];


  self.splitViewController.delegate=splitDetails;

  splitViewController=[[UISplitViewController alloc]init];

  splitViewController.viewControllers=[NSArray arrayWithObjects:splitTableNav,splitDetailNav, nil];





  [self.window addSubview:splitViewController.view];
  self.window.backgroundColor = [UIColor whiteColor];
  [self.window makeKeyAndVisible];
  return YES;
  }

申し訳ありませんが、iPadアプリを開発するのはこれが初めてで、splitviewの使用方法について少し混乱しています。詳細ビューで複数のviewControllerを呼び出すにはどうすればよいですか。タイマー、アラーム、共有の場合、それぞれに異なるビューコントローラーがあります。

私が助けを得るといいのですが!

4

3 に答える 3

4

同様の問題の解決策を探していました。私の場合、選択に応じてテーブルビューを複数の詳細ビューにリンクしたかったのです。1 つのビューコントローラーにデータをオーバーレイすることはできましたが、より良い解決策を探していました。これが私がしたことです。シンプルで、これまでに見つけた複雑で時代遅れのオプションよりもはるかにうまく機能します。

ID インスペクターのストーリーボード ID を、詳細ビュー (「2 番目」) に表示したいビューコントローラーに与えただけで、didSelectRowAtIndexPath に次のように追加しました。

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    TimeDetailViewController *detail = [self.storyboard instantiateViewControllerWithIdentifier:@"second"];

    [[self.splitViewController.viewControllers objectAtIndex:1] pushViewController:detail animated:YES];
 }

したがって、誰かがマスター ビューのセルを押すと、詳細ビ​​ューがプッシュされます。

簡単な if ステートメントで、表示するビューを切り替えることができます。

if ([[self.selfRootMenuArray objectAtIndex:indexPath.row] isEqual: @"Second Choice"]) {
    TimeDetailViewController *detail = [self.storyboard instantiateViewControllerWithIdentifier:@"second"];

    [[self.splitViewController.viewControllers objectAtIndex:1] pushViewController:detail animated:YES];
 } else if ([[self.selfRootMenuArray objectAtIndex:indexPath.row] isEqual: @"First Choice"]) {
     TimeDetailViewController *detail = [self.storyboard instantiateViewControllerWithIdentifier:@"first"];

     [[self.splitViewController.viewControllers objectAtIndex:1] pushViewController:detail animated:YES];
 };

テーブルビューの代わりにボタンやスイッチなどを使用することもできますが、ポイントは「アイデンティティインスペクタ」に「ストーリーボード ID」を追加することです。

「ストーリーボードID」を参照してビューコントローラーをインスタンス化し、それをインデックス1(詳細側)の分割ビューコントローラーにプッシュするだけで、シンプルで迅速です

TimeDetailViewController *detail = [self.storyboard instantiateViewControllerWithIdentifier:@"second"];

[[self.splitViewController.viewControllers objectAtIndex:1] pushViewController:detail animated:YES];

それが役に立てば幸い

于 2013-04-13T01:56:36.853 に答える
1

わかりました、私は1つの解決策を見つけました、それはうまくいきます

http://kshitizghimire.com.np/uisplitviewcontroller-multipledetailviews-with-navigation-controller/

ありがとうございました

于 2012-05-26T06:43:49.703 に答える