LoginSignup
2
2

More than 5 years have passed since last update.

UISplitViewControllerの戻るボタンを変更する

Last updated at Posted at 2014-10-21

結論

splitViewController.displayModeButtonItemが変更できないため、ボタンを作り、
そのボタンのtargetとactionをsplitViewController.displayModeButtonItemのそれらに設定してあげる

MasterController.m
detailController.navigationItem.leftItemsSupplementBackButton = YES;
id target = self.splitViewController;
SEL action = self.splitViewController.displayModeButtonItem.action;
detailController.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"Menu" style:UIBarButtonItemStyleBordered target:target action:action];

ついでに

splitViewControllerで選択項目を制御したい場合はsetPreferredDisplayModeを指定してあげればいいが、
アニメーションもなく閉じてしまう。

MasterController.m
[self.splitViewController setPreferredDisplayMode:UISplitViewControllerDisplayModePrimaryHidden];
```

閉じるアニメーションが必要な場合は、上記のSELを実行してあげれば、いい。
undeclared-selector警告が出るが問題ないので、抑制する。

```objc:MasterController.m
id target = self.splitViewController;
SEL action = self.splitViewController.displayModeButtonItem.action;
#pragma GCC diagnostic ignored "-Warc-performSelector-leaks"
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Warc-performSelector-leaks"
[target performSelector:action];
#pragma clang diagnostic pop
```
2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2