このコードを使用して、TableView から DetailView に移動します。
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
[tableView deselectRowAtIndexPath:indexPath animated:TRUE];
if(indexPath.row==0) {
//Initialize the detail view controller and display it.
Detail1ViewController *firstDetailController = [[Detail1ViewController alloc] initWithNibName:@"Detail1ViewController" bundle:nil];
[self.navigationController pushViewController:firstDetailController animated:YES];
[firstDetailController release];
}
else if(indexPath.row==1) {
//2nd view
}
else if(indexPath.row==2) {
//3rd view
}
}
Storyboard の Detail1ViewController は、背後に UIView がない UIScrollView のみです。
これは Detail1ViewController.h です。
#import <UIKit/UIKit.h>
@interface Detail1ViewController : UIViewController {
IBOutlet UIScrollView *detail1Scroller;
}
@end
そしてそれをロードするために.m:
- (void)viewDidLoad
{
[super viewDidLoad];
[detail1Scroller setScrollEnabled:YES];
[detail1Scroller setContentSize:CGSizeMake(320,1100)];
// Do any additional setup after loading the view.
}
Connections Inspector で「detail1Scroller」から UISCrollView に接続し、Identity Inspector で Detail1ViewController のクラスとして「Detail1ViewController」を記述しました。しかし、詳細ビューに移動するとアプリがクラッシュします!
私がフォローしているチュートリアルでは、UIScrollView が UIView に配置されていることに気付きましたが、これは私のプロジェクトでは行っていません。そこで、UIView 内の UIScrollView を使用して TestViewController を作成しようとしましたが、チュートリアルのように「detail1Scroller」アウトレットが接続インスペクターに表示されません! 誰かがこれを解決するのを手伝ってくれますか。また、UIScrollView を UIView の後ろで使用する必要があるかどうかを明確にしてください。