版權聲明:本文為部落客原創文章,未經部落客允許不得轉載。
指定根視圖:
// 設定window的根視圖控制器
self.window.rootviewcontroller = [[uinavigationcontroller alloc] initwithrootviewcontroller:[rootviewcontroller new]];
定義屬性
#import "rootviewcontroller.h"
#import "firstviewcontroller.h"
#import "secondtableviewcontroller.h"
@interface rootviewcontroller ()<uiscrollviewdelegate>
@property (nonatomic, strong) uisegmentedcontrol *segmentedcontrol;
@property (nonatomic, strong) uiscrollview *scrollview;
@property (nonatomic, strong) firstviewcontroller *firstvc;
@property (nonatomic, strong) secondtableviewcontroller *secondtvc;
@end
@implementation rootviewcontroller
建立實作:
- (void)viewdidload
{
[super viewdidload];
// 适應scrollview
self.automaticallyadjustsscrollviewinsets = no;
self.segmentedcontrol = [[uisegmentedcontrol alloc] initwithitems:@[@"first", @"second"]];
self.navigationitem.titleview = self.segmentedcontrol;
[self.segmentedcontrol addtarget:self action:@selector(segmentedcontrolaction:) forcontrolevents:uicontroleventvaluechanged];
self.segmentedcontrol.selectedsegmentindex = 0;
// 建立scrollview
self.scrollview = [[uiscrollview alloc] initwithframe:cgrectmake(0, 64, [uiscreen mainscreen].bounds.size.width, [uiscreen mainscreen].bounds.size.height - 64)];
[self.view addsubview:self.scrollview];
// 設定scrollview的内容
self.scrollview.contentsize = cgsizemake([uiscreen mainscreen].bounds.size.width * 2, [uiscreen mainscreen].bounds.size.height - 64);
self.scrollview.pagingenabled = yes;
self.scrollview.bounces = no;
// 建立控制器
self.firstvc = [firstviewcontroller new];
self.secondtvc = [[secondtableviewcontroller alloc] initwithstyle:uitableviewstyleplain];
// 添加為self的子控制器
[self addchildviewcontroller:self.firstvc];
[self addchildviewcontroller:self.secondtvc];
self.firstvc.view.frame = cgrectmake(0, 0, self.scrollview.frame.size.width, cgrectgetheight(self.scrollview.frame));
self.secondtvc.view.frame = cgrectmake([uiscreen mainscreen].bounds.size.width, 0, self.scrollview.frame.size.width, cgrectgetheight(self.scrollview.frame));
[self.scrollview addsubview:self.firstvc.view];
[self.scrollview addsubview:self.secondtvc.view];
// 設定scrollview的代理
self.scrollview.delegate = self;
}
分段控制器點選方法
- (void)segmentedcontrolaction:(uisegmentedcontrol *)sender
[self.scrollview setcontentoffset:cgpointmake(sender.selectedsegmentindex * self.scrollview.frame.size.width, 0) animated:no];
- (void)scrollviewdidenddecelerating:(uiscrollview *)scrollview
nsinteger n = scrollview.contentoffset.x / scrollview.frame.size.width;
self.segmentedcontrol.selectedsegmentindex = n;
first/和second分别為uiviewcontroller和uitableviewcontroller隻設顔色即可看效果(這裡不做建立)
最終效果:

原文位址:http://blog.csdn.net/qq_31810357/article/details/49611345