├── CHViewControllerSwitcher-Info.plist
├── CHViewControllerSwitcher.xcodeproj
├── admin.mode1v3
├── admin.pbxuser
├── project.pbxproj
├── project.xcworkspace
│ ├── contents.xcworkspacedata
│ └── xcuserdata
│ │ └── admin.xcuserdatad
│ │ └── UserInterfaceState.xcuserstate
└── xcuserdata
│ └── admin.xcuserdatad
│ └── xcschemes
│ ├── NETabVC.xcscheme
│ ├── SwitcherTest-iPad.xcscheme
│ └── xcschememanagement.plist
├── CHViewControllerSwitcher_Prefix.pch
├── Classes
├── AppDelegate.h
├── AppDelegate.m
├── CHViewControllerSwitcher.h
├── CHViewControllerSwitcher.m
├── Switcher.h
├── Switcher.m
├── TableVC.h
└── TableVC.m
├── MainWindow.xib
├── README.markdown
├── Resources-iPad
├── MainWindow.xib
└── Switcher.xib
├── Switcher.xib
└── main.m
/CHViewControllerSwitcher-Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | English
7 | CFBundleDisplayName
8 | ${PRODUCT_NAME}
9 | CFBundleExecutable
10 | ${EXECUTABLE_NAME}
11 | CFBundleIconFile
12 |
13 | CFBundleIdentifier
14 | com.yourcompany.${PRODUCT_NAME:rfc1034identifier}
15 | CFBundleInfoDictionaryVersion
16 | 6.0
17 | CFBundleName
18 | ${PRODUCT_NAME}
19 | CFBundlePackageType
20 | APPL
21 | CFBundleSignature
22 | ????
23 | CFBundleVersion
24 | 1.0
25 | LSRequiresIPhoneOS
26 |
27 | NSMainNibFile
28 | MainWindow
29 | UIApplicationExitsOnSuspend
30 |
31 |
32 |
33 |
--------------------------------------------------------------------------------
/CHViewControllerSwitcher.xcodeproj/admin.pbxuser:
--------------------------------------------------------------------------------
1 | // !$*UTF8*$!
2 | {
3 | 1D3623240D0F684500981E51 /* AppDelegate.h */ = {
4 | uiCtxt = {
5 | sepNavIntBoundsRect = "{{0, 0}, {696, 658}}";
6 | sepNavSelRange = "{298, 0}";
7 | sepNavVisRange = "{0, 731}";
8 | };
9 | };
10 | 1D3623250D0F684500981E51 /* AppDelegate.m */ = {
11 | uiCtxt = {
12 | sepNavIntBoundsRect = "{{0, 0}, {767, 1792}}";
13 | sepNavSelRange = "{2956, 0}";
14 | sepNavVisRange = "{781, 1300}";
15 | sepNavWindowFrame = "{{15, 298}, {826, 755}}";
16 | };
17 | };
18 | 1D6058900D05DD3D006BFB54 /* SwitcherTest */ = {
19 | activeExec = 0;
20 | executables = (
21 | 844FE29613462DCD007E740B /* SwitcherTest */,
22 | );
23 | };
24 | 28D7ACF60DDB3853001CB0EB /* CHViewControllerSwitcher.h */ = {
25 | uiCtxt = {
26 | sepNavIntBoundsRect = "{{0, 0}, {696, 658}}";
27 | sepNavSelRange = "{388, 0}";
28 | sepNavVisRange = "{0, 905}";
29 | };
30 | };
31 | 28D7ACF70DDB3853001CB0EB /* CHViewControllerSwitcher.m */ = {
32 | uiCtxt = {
33 | sepNavIntBoundsRect = "{{0, 0}, {696, 4704}}";
34 | sepNavSelRange = "{1611, 0}";
35 | sepNavVisRange = "{3269, 989}";
36 | sepNavWindowFrame = "{{289, 248}, {826, 755}}";
37 | };
38 | };
39 | 29B97313FDCFA39411CA2CEA /* Project object */ = {
40 | activeBuildConfigurationName = Debug;
41 | activeExecutable = 844FE29613462DCD007E740B /* SwitcherTest */;
42 | activeSDKPreference = iphonesimulator4.2;
43 | activeTarget = 1D6058900D05DD3D006BFB54 /* SwitcherTest */;
44 | addToTargets = (
45 | );
46 | codeSenseManager = 844FE2A213462DE5007E740B /* Code sense */;
47 | executables = (
48 | 844FE29613462DCD007E740B /* SwitcherTest */,
49 | 84E09CA0134893EB00811A9E /* SwitcherTest-iPad */,
50 | );
51 | perUserDictionary = {
52 | PBXConfiguration.PBXFileTableDataSource3.PBXFileTableDataSource = {
53 | PBXFileTableDataSourceColumnSortingDirectionKey = "-1";
54 | PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID;
55 | PBXFileTableDataSourceColumnWidthsKey = (
56 | 20,
57 | 482,
58 | 20,
59 | 48,
60 | 43,
61 | 43,
62 | 20,
63 | );
64 | PBXFileTableDataSourceColumnsKey = (
65 | PBXFileDataSource_FiletypeID,
66 | PBXFileDataSource_Filename_ColumnID,
67 | PBXFileDataSource_Built_ColumnID,
68 | PBXFileDataSource_ObjectSize_ColumnID,
69 | PBXFileDataSource_Errors_ColumnID,
70 | PBXFileDataSource_Warnings_ColumnID,
71 | PBXFileDataSource_Target_ColumnID,
72 | );
73 | };
74 | PBXConfiguration.PBXFileTableDataSource3.PBXFindDataSource = {
75 | PBXFileTableDataSourceColumnSortingDirectionKey = "-1";
76 | PBXFileTableDataSourceColumnSortingKey = PBXFindDataSource_LocationID;
77 | PBXFileTableDataSourceColumnWidthsKey = (
78 | 200,
79 | 532,
80 | );
81 | PBXFileTableDataSourceColumnsKey = (
82 | PBXFindDataSource_MessageID,
83 | PBXFindDataSource_LocationID,
84 | );
85 | };
86 | PBXConfiguration.PBXFileTableDataSource3.XCSCMDataSource = {
87 | PBXFileTableDataSourceColumnSortingDirectionKey = "-1";
88 | PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID;
89 | PBXFileTableDataSourceColumnWidthsKey = (
90 | 20,
91 | 20,
92 | 494,
93 | 20,
94 | 48.16259765625,
95 | 43,
96 | 43,
97 | 20,
98 | );
99 | PBXFileTableDataSourceColumnsKey = (
100 | PBXFileDataSource_SCM_ColumnID,
101 | PBXFileDataSource_FiletypeID,
102 | PBXFileDataSource_Filename_ColumnID,
103 | PBXFileDataSource_Built_ColumnID,
104 | PBXFileDataSource_ObjectSize_ColumnID,
105 | PBXFileDataSource_Errors_ColumnID,
106 | PBXFileDataSource_Warnings_ColumnID,
107 | PBXFileDataSource_Target_ColumnID,
108 | );
109 | };
110 | PBXConfiguration.PBXTargetDataSource.PBXTargetDataSource = {
111 | PBXFileTableDataSourceColumnSortingDirectionKey = "-1";
112 | PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID;
113 | PBXFileTableDataSourceColumnWidthsKey = (
114 | 20,
115 | 427,
116 | 60,
117 | 20,
118 | 48,
119 | 43,
120 | 43,
121 | );
122 | PBXFileTableDataSourceColumnsKey = (
123 | PBXFileDataSource_FiletypeID,
124 | PBXFileDataSource_Filename_ColumnID,
125 | PBXTargetDataSource_PrimaryAttribute,
126 | PBXFileDataSource_Built_ColumnID,
127 | PBXFileDataSource_ObjectSize_ColumnID,
128 | PBXFileDataSource_Errors_ColumnID,
129 | PBXFileDataSource_Warnings_ColumnID,
130 | );
131 | };
132 | PBXPerProjectTemplateStateSaveDate = 323533776;
133 | PBXWorkspaceStateSaveDate = 323533776;
134 | };
135 | perUserProjectItems = {
136 | 848FA9EF1348BC0E00B2EC8A /* PlistBookmark */ = 848FA9EF1348BC0E00B2EC8A /* PlistBookmark */;
137 | 848FA9F01348BC0E00B2EC8A /* PBXBookmark */ = 848FA9F01348BC0E00B2EC8A /* PBXBookmark */;
138 | 848FA9F11348BC0E00B2EC8A /* PBXTextBookmark */ = 848FA9F11348BC0E00B2EC8A /* PBXTextBookmark */;
139 | 84B0CA9F13477577009F2189 /* PBXTextBookmark */ = 84B0CA9F13477577009F2189 /* PBXTextBookmark */;
140 | 84B0CB3F13487AD9009F2189 /* PBXTextBookmark */ = 84B0CB3F13487AD9009F2189 /* PBXTextBookmark */;
141 | 84B0CB6C134885EE009F2189 /* PBXTextBookmark */ = 84B0CB6C134885EE009F2189 /* PBXTextBookmark */;
142 | 84E09C6C1348930300811A9E /* PBXTextBookmark */ = 84E09C6C1348930300811A9E /* PBXTextBookmark */;
143 | 84E09C6D1348930300811A9E /* PBXTextBookmark */ = 84E09C6D1348930300811A9E /* PBXTextBookmark */;
144 | 84E09C711348935600811A9E /* PBXTextBookmark */ = 84E09C711348935600811A9E /* PBXTextBookmark */;
145 | 84E09C721348935600811A9E /* PBXTextBookmark */ = 84E09C721348935600811A9E /* PBXTextBookmark */;
146 | 84E09C731348935600811A9E /* PBXTextBookmark */ = 84E09C731348935600811A9E /* PBXTextBookmark */;
147 | 84E09C8C134893C400811A9E /* PBXTextBookmark */ = 84E09C8C134893C400811A9E /* PBXTextBookmark */;
148 | 84E09CCD134896E800811A9E /* PBXTextBookmark */ = 84E09CCD134896E800811A9E /* PBXTextBookmark */;
149 | };
150 | sourceControlManager = 844FE2A113462DE5007E740B /* Source Control */;
151 | userBuildSettings = {
152 | };
153 | };
154 | 29B97316FDCFA39411CA2CEA /* main.m */ = {
155 | uiCtxt = {
156 | sepNavIntBoundsRect = "{{0, 0}, {696, 638}}";
157 | sepNavSelRange = "{188, 0}";
158 | sepNavVisRange = "{0, 394}";
159 | };
160 | };
161 | 32CA4F630368D1EE00C91783 /* CHViewControllerSwitcher_Prefix.pch */ = {
162 | uiCtxt = {
163 | sepNavIntBoundsRect = "{{0, 0}, {696, 658}}";
164 | sepNavSelRange = "{217, 0}";
165 | sepNavVisRange = "{0, 217}";
166 | };
167 | };
168 | 844FE29613462DCD007E740B /* SwitcherTest */ = {
169 | isa = PBXExecutable;
170 | activeArgIndices = (
171 | );
172 | argumentStrings = (
173 | );
174 | autoAttachOnCrash = 1;
175 | breakpointsEnabled = 0;
176 | configStateDict = {
177 | };
178 | customDataFormattersEnabled = 1;
179 | dataTipCustomDataFormattersEnabled = 1;
180 | dataTipShowTypeColumn = 1;
181 | dataTipSortType = 0;
182 | debuggerPlugin = GDBDebugging;
183 | disassemblyDisplayState = 0;
184 | dylibVariantSuffix = "";
185 | enableDebugStr = 1;
186 | environmentEntries = (
187 | );
188 | executableSystemSymbolLevel = 0;
189 | executableUserSymbolLevel = 0;
190 | libgmallocEnabled = 0;
191 | name = SwitcherTest;
192 | savedGlobals = {
193 | };
194 | showTypeColumn = 0;
195 | sourceDirectories = (
196 | );
197 | };
198 | 844FE2A113462DE5007E740B /* Source Control */ = {
199 | isa = PBXSourceControlManager;
200 | fallbackIsa = XCSourceControlManager;
201 | isSCMEnabled = 0;
202 | scmConfiguration = {
203 | repositoryNamesForRoots = {
204 | "" = "";
205 | };
206 | };
207 | };
208 | 844FE2A213462DE5007E740B /* Code sense */ = {
209 | isa = PBXCodeSenseManager;
210 | indexTemplatePath = "";
211 | };
212 | 848FA9EE1348BBEF00B2EC8A /* README.markdown */ = {
213 | uiCtxt = {
214 | sepNavIntBoundsRect = "{{0, 0}, {645, 656}}";
215 | sepNavSelRange = "{24, 0}";
216 | sepNavVisRange = "{0, 1360}";
217 | };
218 | };
219 | 848FA9EF1348BC0E00B2EC8A /* PlistBookmark */ = {
220 | isa = PlistBookmark;
221 | fRef = 8D1107310486CEB800E47090 /* CHViewControllerSwitcher-Info.plist */;
222 | fallbackIsa = PBXBookmark;
223 | isK = 0;
224 | kPath = (
225 | );
226 | name = "/Users/admin/git/CHViewControllerSwitcher/CHViewControllerSwitcher-Info.plist";
227 | rLen = 0;
228 | rLoc = 9223372036854775807;
229 | };
230 | 848FA9F01348BC0E00B2EC8A /* PBXBookmark */ = {
231 | isa = PBXBookmark;
232 | fRef = 848FA9EE1348BBEF00B2EC8A /* README.markdown */;
233 | };
234 | 848FA9F11348BC0E00B2EC8A /* PBXTextBookmark */ = {
235 | isa = PBXTextBookmark;
236 | fRef = 848FA9EE1348BBEF00B2EC8A /* README.markdown */;
237 | name = "README.markdown: 1";
238 | rLen = 0;
239 | rLoc = 24;
240 | rType = 0;
241 | vrLen = 1360;
242 | vrLoc = 0;
243 | };
244 | 84B0C8ED13464D85009F2189 /* TableVC.h */ = {
245 | uiCtxt = {
246 | sepNavIntBoundsRect = "{{0, 0}, {696, 658}}";
247 | sepNavSelRange = "{184, 0}";
248 | sepNavVisRange = "{0, 184}";
249 | };
250 | };
251 | 84B0C8EE13464D85009F2189 /* TableVC.m */ = {
252 | uiCtxt = {
253 | sepNavFolds = "{\n c = (\n {\n l = DetailViewController;\n r = \"{4138, 24}\";\n s = 1;\n },\n {\n l = DetailViewController;\n r = \"{4189, 24}\";\n s = 1;\n },\n {\n l = \"Nib name\";\n r = \"{4239, 12}\";\n s = 1;\n }\n );\n r = \"{0, 4942}\";\n s = 0;\n}";
254 | sepNavIntBoundsRect = "{{0, 0}, {696, 3104}}";
255 | sepNavSelRange = "{3975, 20}";
256 | sepNavVisRange = "{0, 791}";
257 | };
258 | };
259 | 84B0CA9F13477577009F2189 /* PBXTextBookmark */ = {
260 | isa = PBXTextBookmark;
261 | fRef = 29B97316FDCFA39411CA2CEA /* main.m */;
262 | name = "main.m: 12";
263 | rLen = 0;
264 | rLoc = 163;
265 | rType = 0;
266 | vrLen = 394;
267 | vrLoc = 0;
268 | };
269 | 84B0CB3F13487AD9009F2189 /* PBXTextBookmark */ = {
270 | isa = PBXTextBookmark;
271 | fRef = 1D3623250D0F684500981E51 /* AppDelegate.m */;
272 | name = "AppDelegate.m: 21";
273 | rLen = 0;
274 | rLoc = 335;
275 | rType = 0;
276 | vrLen = 786;
277 | vrLoc = 0;
278 | };
279 | 84B0CB5213487B6E009F2189 /* Switcher.h */ = {
280 | uiCtxt = {
281 | sepNavIntBoundsRect = "{{0, 0}, {809, 352}}";
282 | sepNavSelRange = "{314, 0}";
283 | sepNavVisRange = "{0, 225}";
284 | };
285 | };
286 | 84B0CB5313487B6E009F2189 /* Switcher.m */ = {
287 | uiCtxt = {
288 | sepNavIntBoundsRect = "{{0, 0}, {645, 1328}}";
289 | sepNavSelRange = "{1064, 0}";
290 | sepNavVisRange = "{463, 1092}";
291 | };
292 | };
293 | 84B0CB6C134885EE009F2189 /* PBXTextBookmark */ = {
294 | isa = PBXTextBookmark;
295 | fRef = 84B0C8EE13464D85009F2189 /* TableVC.m */;
296 | name = "MyTblVC.m: 151";
297 | rLen = 20;
298 | rLoc = 3975;
299 | rType = 0;
300 | vrLen = 791;
301 | vrLoc = 0;
302 | };
303 | 84E09C6C1348930300811A9E /* PBXTextBookmark */ = {
304 | isa = PBXTextBookmark;
305 | fRef = 1D3623240D0F684500981E51 /* AppDelegate.h */;
306 | name = "AppDelegate.h: 15";
307 | rLen = 0;
308 | rLoc = 298;
309 | rType = 0;
310 | vrLen = 731;
311 | vrLoc = 0;
312 | };
313 | 84E09C6D1348930300811A9E /* PBXTextBookmark */ = {
314 | isa = PBXTextBookmark;
315 | fRef = 28D7ACF70DDB3853001CB0EB /* CHViewControllerSwitcher.m */;
316 | name = "CHViewControllerSwitcher.m: 68";
317 | rLen = 0;
318 | rLoc = 1611;
319 | rType = 0;
320 | vrLen = 989;
321 | vrLoc = 3269;
322 | };
323 | 84E09C711348935600811A9E /* PBXTextBookmark */ = {
324 | isa = PBXTextBookmark;
325 | fRef = 28D7ACF60DDB3853001CB0EB /* CHViewControllerSwitcher.h */;
326 | name = "CHViewControllerSwitcher.h: 20";
327 | rLen = 0;
328 | rLoc = 388;
329 | rType = 0;
330 | vrLen = 905;
331 | vrLoc = 0;
332 | };
333 | 84E09C721348935600811A9E /* PBXTextBookmark */ = {
334 | isa = PBXTextBookmark;
335 | fRef = 32CA4F630368D1EE00C91783 /* CHViewControllerSwitcher_Prefix.pch */;
336 | name = "CHViewControllerSwitcher_Prefix.pch: 9";
337 | rLen = 0;
338 | rLoc = 217;
339 | rType = 0;
340 | vrLen = 217;
341 | vrLoc = 0;
342 | };
343 | 84E09C731348935600811A9E /* PBXTextBookmark */ = {
344 | isa = PBXTextBookmark;
345 | fRef = 84B0CB5213487B6E009F2189 /* Switcher.h */;
346 | name = "Switcher.h: 20";
347 | rLen = 0;
348 | rLoc = 314;
349 | rType = 0;
350 | vrLen = 314;
351 | vrLoc = 0;
352 | };
353 | 84E09C8C134893C400811A9E /* PBXTextBookmark */ = {
354 | isa = PBXTextBookmark;
355 | fRef = 84B0C8ED13464D85009F2189 /* TableVC.h */;
356 | name = "TableVC.h: 17";
357 | rLen = 0;
358 | rLoc = 184;
359 | rType = 0;
360 | vrLen = 184;
361 | vrLoc = 0;
362 | };
363 | 84E09C8E134893EB00811A9E /* SwitcherTest-iPad */ = {
364 | activeExec = 0;
365 | executables = (
366 | 84E09CA0134893EB00811A9E /* SwitcherTest-iPad */,
367 | );
368 | };
369 | 84E09CA0134893EB00811A9E /* SwitcherTest-iPad */ = {
370 | isa = PBXExecutable;
371 | activeArgIndices = (
372 | );
373 | argumentStrings = (
374 | );
375 | autoAttachOnCrash = 1;
376 | breakpointsEnabled = 0;
377 | configStateDict = {
378 | };
379 | customDataFormattersEnabled = 1;
380 | dataTipCustomDataFormattersEnabled = 1;
381 | dataTipShowTypeColumn = 1;
382 | dataTipSortType = 0;
383 | debuggerPlugin = GDBDebugging;
384 | disassemblyDisplayState = 0;
385 | dylibVariantSuffix = "";
386 | enableDebugStr = 1;
387 | environmentEntries = (
388 | );
389 | executableSystemSymbolLevel = 0;
390 | executableUserSymbolLevel = 0;
391 | libgmallocEnabled = 0;
392 | name = "SwitcherTest-iPad";
393 | showTypeColumn = 0;
394 | sourceDirectories = (
395 | );
396 | };
397 | 84E09CCD134896E800811A9E /* PBXTextBookmark */ = {
398 | isa = PBXTextBookmark;
399 | fRef = 84B0CB5313487B6E009F2189 /* Switcher.m */;
400 | name = "Switcher.m: 42";
401 | rLen = 0;
402 | rLoc = 1064;
403 | rType = 0;
404 | vrLen = 1092;
405 | vrLoc = 463;
406 | };
407 | }
408 |
--------------------------------------------------------------------------------
/CHViewControllerSwitcher.xcodeproj/project.pbxproj:
--------------------------------------------------------------------------------
1 | // !$*UTF8*$!
2 | {
3 | archiveVersion = 1;
4 | classes = {
5 | };
6 | objectVersion = 45;
7 | objects = {
8 |
9 | /* Begin PBXBuildFile section */
10 | 1D3623260D0F684500981E51 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 1D3623250D0F684500981E51 /* AppDelegate.m */; };
11 | 1D60589B0D05DD56006BFB54 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 29B97316FDCFA39411CA2CEA /* main.m */; };
12 | 1D60589F0D05DD5A006BFB54 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1D30AB110D05D00D00671497 /* Foundation.framework */; };
13 | 1DF5F4E00D08C38300B7A737 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1DF5F4DF0D08C38300B7A737 /* UIKit.framework */; };
14 | 288765A50DF7441C002DB57D /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 288765A40DF7441C002DB57D /* CoreGraphics.framework */; };
15 | 2899E5220DE3E06400AC0155 /* Switcher.xib in Resources */ = {isa = PBXBuildFile; fileRef = 2899E5210DE3E06400AC0155 /* Switcher.xib */; };
16 | 28AD733F0D9D9553002E5188 /* MainWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = 28AD733E0D9D9553002E5188 /* MainWindow.xib */; };
17 | 28D7ACF80DDB3853001CB0EB /* CHViewControllerSwitcher.m in Sources */ = {isa = PBXBuildFile; fileRef = 28D7ACF70DDB3853001CB0EB /* CHViewControllerSwitcher.m */; };
18 | 84B0C8EF13464D85009F2189 /* TableVC.m in Sources */ = {isa = PBXBuildFile; fileRef = 84B0C8EE13464D85009F2189 /* TableVC.m */; };
19 | 84B0CB5413487B6E009F2189 /* Switcher.m in Sources */ = {isa = PBXBuildFile; fileRef = 84B0CB5313487B6E009F2189 /* Switcher.m */; };
20 | 84E09C93134893EB00811A9E /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 29B97316FDCFA39411CA2CEA /* main.m */; };
21 | 84E09C94134893EB00811A9E /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 1D3623250D0F684500981E51 /* AppDelegate.m */; };
22 | 84E09C95134893EB00811A9E /* CHViewControllerSwitcher.m in Sources */ = {isa = PBXBuildFile; fileRef = 28D7ACF70DDB3853001CB0EB /* CHViewControllerSwitcher.m */; };
23 | 84E09C96134893EB00811A9E /* TableVC.m in Sources */ = {isa = PBXBuildFile; fileRef = 84B0C8EE13464D85009F2189 /* TableVC.m */; };
24 | 84E09C97134893EB00811A9E /* Switcher.m in Sources */ = {isa = PBXBuildFile; fileRef = 84B0CB5313487B6E009F2189 /* Switcher.m */; };
25 | 84E09C99134893EB00811A9E /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1D30AB110D05D00D00671497 /* Foundation.framework */; };
26 | 84E09C9A134893EB00811A9E /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1DF5F4DF0D08C38300B7A737 /* UIKit.framework */; };
27 | 84E09C9B134893EB00811A9E /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 288765A40DF7441C002DB57D /* CoreGraphics.framework */; };
28 | 84E09CA4134893ED00811A9E /* MainWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = 84E09CA2134893ED00811A9E /* MainWindow.xib */; };
29 | 84E09CA5134893ED00811A9E /* Switcher.xib in Resources */ = {isa = PBXBuildFile; fileRef = 84E09CA3134893ED00811A9E /* Switcher.xib */; };
30 | /* End PBXBuildFile section */
31 |
32 | /* Begin PBXFileReference section */
33 | 1D30AB110D05D00D00671497 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
34 | 1D3623240D0F684500981E51 /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = ""; };
35 | 1D3623250D0F684500981E51 /* AppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = ""; };
36 | 1D6058910D05DD3D006BFB54 /* CHViewControllerSwitcher.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = CHViewControllerSwitcher.app; sourceTree = BUILT_PRODUCTS_DIR; };
37 | 1DF5F4DF0D08C38300B7A737 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; };
38 | 288765A40DF7441C002DB57D /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; };
39 | 2899E5210DE3E06400AC0155 /* Switcher.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = Switcher.xib; sourceTree = ""; };
40 | 28AD733E0D9D9553002E5188 /* MainWindow.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = MainWindow.xib; sourceTree = ""; };
41 | 28D7ACF60DDB3853001CB0EB /* CHViewControllerSwitcher.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CHViewControllerSwitcher.h; sourceTree = ""; };
42 | 28D7ACF70DDB3853001CB0EB /* CHViewControllerSwitcher.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CHViewControllerSwitcher.m; sourceTree = ""; };
43 | 29B97316FDCFA39411CA2CEA /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; };
44 | 32CA4F630368D1EE00C91783 /* CHViewControllerSwitcher_Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CHViewControllerSwitcher_Prefix.pch; sourceTree = ""; };
45 | 848FA9EE1348BBEF00B2EC8A /* README.markdown */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = README.markdown; sourceTree = ""; };
46 | 84B0C8ED13464D85009F2189 /* TableVC.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TableVC.h; sourceTree = ""; };
47 | 84B0C8EE13464D85009F2189 /* TableVC.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TableVC.m; sourceTree = ""; };
48 | 84B0CB5213487B6E009F2189 /* Switcher.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Switcher.h; sourceTree = ""; };
49 | 84B0CB5313487B6E009F2189 /* Switcher.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Switcher.m; sourceTree = ""; };
50 | 84E09C9F134893EB00811A9E /* CHViewControllerSwitcher-Upgraded.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "CHViewControllerSwitcher-Upgraded.app"; sourceTree = BUILT_PRODUCTS_DIR; };
51 | 84E09CA2134893ED00811A9E /* MainWindow.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = MainWindow.xib; path = "Resources-iPad/MainWindow.xib"; sourceTree = ""; };
52 | 84E09CA3134893ED00811A9E /* Switcher.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Switcher.xib; path = "Resources-iPad/Switcher.xib"; sourceTree = ""; };
53 | 8D1107310486CEB800E47090 /* CHViewControllerSwitcher-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "CHViewControllerSwitcher-Info.plist"; plistStructureDefinitionIdentifier = "com.apple.xcode.plist.structure-definition.iphone.info-plist"; sourceTree = ""; };
54 | /* End PBXFileReference section */
55 |
56 | /* Begin PBXFrameworksBuildPhase section */
57 | 1D60588F0D05DD3D006BFB54 /* Frameworks */ = {
58 | isa = PBXFrameworksBuildPhase;
59 | buildActionMask = 2147483647;
60 | files = (
61 | 1D60589F0D05DD5A006BFB54 /* Foundation.framework in Frameworks */,
62 | 1DF5F4E00D08C38300B7A737 /* UIKit.framework in Frameworks */,
63 | 288765A50DF7441C002DB57D /* CoreGraphics.framework in Frameworks */,
64 | );
65 | runOnlyForDeploymentPostprocessing = 0;
66 | };
67 | 84E09C98134893EB00811A9E /* Frameworks */ = {
68 | isa = PBXFrameworksBuildPhase;
69 | buildActionMask = 2147483647;
70 | files = (
71 | 84E09C99134893EB00811A9E /* Foundation.framework in Frameworks */,
72 | 84E09C9A134893EB00811A9E /* UIKit.framework in Frameworks */,
73 | 84E09C9B134893EB00811A9E /* CoreGraphics.framework in Frameworks */,
74 | );
75 | runOnlyForDeploymentPostprocessing = 0;
76 | };
77 | /* End PBXFrameworksBuildPhase section */
78 |
79 | /* Begin PBXGroup section */
80 | 080E96DDFE201D6D7F000001 /* Classes */ = {
81 | isa = PBXGroup;
82 | children = (
83 | 84B0CB3B13487ABA009F2189 /* switcher */,
84 | 84B0CB3A13487AA7009F2189 /* demo */,
85 | );
86 | path = Classes;
87 | sourceTree = "";
88 | };
89 | 19C28FACFE9D520D11CA2CBB /* Products */ = {
90 | isa = PBXGroup;
91 | children = (
92 | 1D6058910D05DD3D006BFB54 /* CHViewControllerSwitcher.app */,
93 | 84E09C9F134893EB00811A9E /* CHViewControllerSwitcher-Upgraded.app */,
94 | );
95 | name = Products;
96 | sourceTree = "";
97 | };
98 | 29B97314FDCFA39411CA2CEA /* CustomTemplate */ = {
99 | isa = PBXGroup;
100 | children = (
101 | 848FA9EE1348BBEF00B2EC8A /* README.markdown */,
102 | 080E96DDFE201D6D7F000001 /* Classes */,
103 | 29B97315FDCFA39411CA2CEA /* Other Sources */,
104 | 29B97317FDCFA39411CA2CEA /* Resources */,
105 | 84E09CA1134893EB00811A9E /* Resources-iPad */,
106 | 29B97323FDCFA39411CA2CEA /* Frameworks */,
107 | 19C28FACFE9D520D11CA2CBB /* Products */,
108 | );
109 | name = CustomTemplate;
110 | sourceTree = "";
111 | };
112 | 29B97315FDCFA39411CA2CEA /* Other Sources */ = {
113 | isa = PBXGroup;
114 | children = (
115 | 32CA4F630368D1EE00C91783 /* CHViewControllerSwitcher_Prefix.pch */,
116 | 29B97316FDCFA39411CA2CEA /* main.m */,
117 | );
118 | name = "Other Sources";
119 | sourceTree = "";
120 | };
121 | 29B97317FDCFA39411CA2CEA /* Resources */ = {
122 | isa = PBXGroup;
123 | children = (
124 | 2899E5210DE3E06400AC0155 /* Switcher.xib */,
125 | 28AD733E0D9D9553002E5188 /* MainWindow.xib */,
126 | 8D1107310486CEB800E47090 /* CHViewControllerSwitcher-Info.plist */,
127 | );
128 | name = Resources;
129 | sourceTree = "";
130 | };
131 | 29B97323FDCFA39411CA2CEA /* Frameworks */ = {
132 | isa = PBXGroup;
133 | children = (
134 | 1DF5F4DF0D08C38300B7A737 /* UIKit.framework */,
135 | 1D30AB110D05D00D00671497 /* Foundation.framework */,
136 | 288765A40DF7441C002DB57D /* CoreGraphics.framework */,
137 | );
138 | name = Frameworks;
139 | sourceTree = "";
140 | };
141 | 84B0CB3A13487AA7009F2189 /* demo */ = {
142 | isa = PBXGroup;
143 | children = (
144 | 1D3623240D0F684500981E51 /* AppDelegate.h */,
145 | 1D3623250D0F684500981E51 /* AppDelegate.m */,
146 | 84B0C8ED13464D85009F2189 /* TableVC.h */,
147 | 84B0C8EE13464D85009F2189 /* TableVC.m */,
148 | 84B0CB5213487B6E009F2189 /* Switcher.h */,
149 | 84B0CB5313487B6E009F2189 /* Switcher.m */,
150 | );
151 | name = demo;
152 | sourceTree = "";
153 | };
154 | 84B0CB3B13487ABA009F2189 /* switcher */ = {
155 | isa = PBXGroup;
156 | children = (
157 | 28D7ACF60DDB3853001CB0EB /* CHViewControllerSwitcher.h */,
158 | 28D7ACF70DDB3853001CB0EB /* CHViewControllerSwitcher.m */,
159 | );
160 | name = switcher;
161 | sourceTree = "";
162 | };
163 | 84E09CA1134893EB00811A9E /* Resources-iPad */ = {
164 | isa = PBXGroup;
165 | children = (
166 | 84E09CA2134893ED00811A9E /* MainWindow.xib */,
167 | 84E09CA3134893ED00811A9E /* Switcher.xib */,
168 | );
169 | name = "Resources-iPad";
170 | sourceTree = "";
171 | };
172 | /* End PBXGroup section */
173 |
174 | /* Begin PBXNativeTarget section */
175 | 1D6058900D05DD3D006BFB54 /* SwitcherTest */ = {
176 | isa = PBXNativeTarget;
177 | buildConfigurationList = 1D6058960D05DD3E006BFB54 /* Build configuration list for PBXNativeTarget "SwitcherTest" */;
178 | buildPhases = (
179 | 1D60588D0D05DD3D006BFB54 /* Resources */,
180 | 1D60588E0D05DD3D006BFB54 /* Sources */,
181 | 1D60588F0D05DD3D006BFB54 /* Frameworks */,
182 | );
183 | buildRules = (
184 | );
185 | dependencies = (
186 | );
187 | name = SwitcherTest;
188 | productName = NETabVC;
189 | productReference = 1D6058910D05DD3D006BFB54 /* CHViewControllerSwitcher.app */;
190 | productType = "com.apple.product-type.application";
191 | };
192 | 84E09C8E134893EB00811A9E /* SwitcherTest-iPad */ = {
193 | isa = PBXNativeTarget;
194 | buildConfigurationList = 84E09C9C134893EB00811A9E /* Build configuration list for PBXNativeTarget "SwitcherTest-iPad" */;
195 | buildPhases = (
196 | 84E09C8F134893EB00811A9E /* Resources */,
197 | 84E09C92134893EB00811A9E /* Sources */,
198 | 84E09C98134893EB00811A9E /* Frameworks */,
199 | );
200 | buildRules = (
201 | );
202 | dependencies = (
203 | );
204 | name = "SwitcherTest-iPad";
205 | productName = NETabVC;
206 | productReference = 84E09C9F134893EB00811A9E /* CHViewControllerSwitcher-Upgraded.app */;
207 | productType = "com.apple.product-type.application";
208 | };
209 | /* End PBXNativeTarget section */
210 |
211 | /* Begin PBXProject section */
212 | 29B97313FDCFA39411CA2CEA /* Project object */ = {
213 | isa = PBXProject;
214 | buildConfigurationList = C01FCF4E08A954540054247B /* Build configuration list for PBXProject "CHViewControllerSwitcher" */;
215 | compatibilityVersion = "Xcode 3.1";
216 | developmentRegion = English;
217 | hasScannedForEncodings = 1;
218 | knownRegions = (
219 | English,
220 | Japanese,
221 | French,
222 | German,
223 | );
224 | mainGroup = 29B97314FDCFA39411CA2CEA /* CustomTemplate */;
225 | projectDirPath = "";
226 | projectRoot = "";
227 | targets = (
228 | 1D6058900D05DD3D006BFB54 /* SwitcherTest */,
229 | 84E09C8E134893EB00811A9E /* SwitcherTest-iPad */,
230 | );
231 | };
232 | /* End PBXProject section */
233 |
234 | /* Begin PBXResourcesBuildPhase section */
235 | 1D60588D0D05DD3D006BFB54 /* Resources */ = {
236 | isa = PBXResourcesBuildPhase;
237 | buildActionMask = 2147483647;
238 | files = (
239 | 28AD733F0D9D9553002E5188 /* MainWindow.xib in Resources */,
240 | 2899E5220DE3E06400AC0155 /* Switcher.xib in Resources */,
241 | );
242 | runOnlyForDeploymentPostprocessing = 0;
243 | };
244 | 84E09C8F134893EB00811A9E /* Resources */ = {
245 | isa = PBXResourcesBuildPhase;
246 | buildActionMask = 2147483647;
247 | files = (
248 | 84E09CA4134893ED00811A9E /* MainWindow.xib in Resources */,
249 | 84E09CA5134893ED00811A9E /* Switcher.xib in Resources */,
250 | );
251 | runOnlyForDeploymentPostprocessing = 0;
252 | };
253 | /* End PBXResourcesBuildPhase section */
254 |
255 | /* Begin PBXSourcesBuildPhase section */
256 | 1D60588E0D05DD3D006BFB54 /* Sources */ = {
257 | isa = PBXSourcesBuildPhase;
258 | buildActionMask = 2147483647;
259 | files = (
260 | 1D60589B0D05DD56006BFB54 /* main.m in Sources */,
261 | 1D3623260D0F684500981E51 /* AppDelegate.m in Sources */,
262 | 28D7ACF80DDB3853001CB0EB /* CHViewControllerSwitcher.m in Sources */,
263 | 84B0C8EF13464D85009F2189 /* TableVC.m in Sources */,
264 | 84B0CB5413487B6E009F2189 /* Switcher.m in Sources */,
265 | );
266 | runOnlyForDeploymentPostprocessing = 0;
267 | };
268 | 84E09C92134893EB00811A9E /* Sources */ = {
269 | isa = PBXSourcesBuildPhase;
270 | buildActionMask = 2147483647;
271 | files = (
272 | 84E09C93134893EB00811A9E /* main.m in Sources */,
273 | 84E09C94134893EB00811A9E /* AppDelegate.m in Sources */,
274 | 84E09C95134893EB00811A9E /* CHViewControllerSwitcher.m in Sources */,
275 | 84E09C96134893EB00811A9E /* TableVC.m in Sources */,
276 | 84E09C97134893EB00811A9E /* Switcher.m in Sources */,
277 | );
278 | runOnlyForDeploymentPostprocessing = 0;
279 | };
280 | /* End PBXSourcesBuildPhase section */
281 |
282 | /* Begin XCBuildConfiguration section */
283 | 1D6058940D05DD3E006BFB54 /* Debug */ = {
284 | isa = XCBuildConfiguration;
285 | buildSettings = {
286 | ALWAYS_SEARCH_USER_PATHS = NO;
287 | COPY_PHASE_STRIP = NO;
288 | GCC_DYNAMIC_NO_PIC = NO;
289 | GCC_OPTIMIZATION_LEVEL = 0;
290 | GCC_PRECOMPILE_PREFIX_HEADER = YES;
291 | GCC_PREFIX_HEADER = CHViewControllerSwitcher_Prefix.pch;
292 | INFOPLIST_FILE = "CHViewControllerSwitcher-Info.plist";
293 | PRODUCT_NAME = CHViewControllerSwitcher;
294 | TARGETED_DEVICE_FAMILY = 1;
295 | };
296 | name = Debug;
297 | };
298 | 1D6058950D05DD3E006BFB54 /* Release */ = {
299 | isa = XCBuildConfiguration;
300 | buildSettings = {
301 | ALWAYS_SEARCH_USER_PATHS = NO;
302 | COPY_PHASE_STRIP = YES;
303 | GCC_PRECOMPILE_PREFIX_HEADER = YES;
304 | GCC_PREFIX_HEADER = CHViewControllerSwitcher_Prefix.pch;
305 | INFOPLIST_FILE = "CHViewControllerSwitcher-Info.plist";
306 | PRODUCT_NAME = CHViewControllerSwitcher;
307 | TARGETED_DEVICE_FAMILY = 1;
308 | VALIDATE_PRODUCT = YES;
309 | };
310 | name = Release;
311 | };
312 | 84E09C9D134893EB00811A9E /* Debug */ = {
313 | isa = XCBuildConfiguration;
314 | buildSettings = {
315 | ALWAYS_SEARCH_USER_PATHS = NO;
316 | ARCHS = "$(ARCHS_UNIVERSAL_IPHONE_OS)";
317 | COPY_PHASE_STRIP = NO;
318 | GCC_DYNAMIC_NO_PIC = NO;
319 | GCC_OPTIMIZATION_LEVEL = 0;
320 | GCC_PRECOMPILE_PREFIX_HEADER = YES;
321 | GCC_PREFIX_HEADER = CHViewControllerSwitcher_Prefix.pch;
322 | INFOPLIST_FILE = "CHViewControllerSwitcher-Info.plist";
323 | PRODUCT_NAME = "CHViewControllerSwitcher-Upgraded";
324 | SDKROOT = iphoneos;
325 | TARGETED_DEVICE_FAMILY = 2;
326 | };
327 | name = Debug;
328 | };
329 | 84E09C9E134893EB00811A9E /* Release */ = {
330 | isa = XCBuildConfiguration;
331 | buildSettings = {
332 | ALWAYS_SEARCH_USER_PATHS = NO;
333 | ARCHS = "$(ARCHS_UNIVERSAL_IPHONE_OS)";
334 | COPY_PHASE_STRIP = YES;
335 | GCC_PRECOMPILE_PREFIX_HEADER = YES;
336 | GCC_PREFIX_HEADER = CHViewControllerSwitcher_Prefix.pch;
337 | INFOPLIST_FILE = "CHViewControllerSwitcher-Info.plist";
338 | PRODUCT_NAME = "CHViewControllerSwitcher-Upgraded";
339 | SDKROOT = iphoneos;
340 | TARGETED_DEVICE_FAMILY = 2;
341 | VALIDATE_PRODUCT = YES;
342 | };
343 | name = Release;
344 | };
345 | C01FCF4F08A954540054247B /* Debug */ = {
346 | isa = XCBuildConfiguration;
347 | buildSettings = {
348 | ARCHS = "$(ARCHS_STANDARD_32_BIT)";
349 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
350 | GCC_C_LANGUAGE_STANDARD = c99;
351 | GCC_WARN_ABOUT_RETURN_TYPE = YES;
352 | GCC_WARN_UNUSED_VARIABLE = YES;
353 | PREBINDING = NO;
354 | SDKROOT = iphoneos;
355 | };
356 | name = Debug;
357 | };
358 | C01FCF5008A954540054247B /* Release */ = {
359 | isa = XCBuildConfiguration;
360 | buildSettings = {
361 | ARCHS = "$(ARCHS_STANDARD_32_BIT)";
362 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
363 | GCC_C_LANGUAGE_STANDARD = c99;
364 | GCC_WARN_ABOUT_RETURN_TYPE = YES;
365 | GCC_WARN_UNUSED_VARIABLE = YES;
366 | OTHER_CFLAGS = "-DNS_BLOCK_ASSERTIONS=1";
367 | PREBINDING = NO;
368 | SDKROOT = iphoneos;
369 | };
370 | name = Release;
371 | };
372 | /* End XCBuildConfiguration section */
373 |
374 | /* Begin XCConfigurationList section */
375 | 1D6058960D05DD3E006BFB54 /* Build configuration list for PBXNativeTarget "SwitcherTest" */ = {
376 | isa = XCConfigurationList;
377 | buildConfigurations = (
378 | 1D6058940D05DD3E006BFB54 /* Debug */,
379 | 1D6058950D05DD3E006BFB54 /* Release */,
380 | );
381 | defaultConfigurationIsVisible = 0;
382 | defaultConfigurationName = Release;
383 | };
384 | 84E09C9C134893EB00811A9E /* Build configuration list for PBXNativeTarget "SwitcherTest-iPad" */ = {
385 | isa = XCConfigurationList;
386 | buildConfigurations = (
387 | 84E09C9D134893EB00811A9E /* Debug */,
388 | 84E09C9E134893EB00811A9E /* Release */,
389 | );
390 | defaultConfigurationIsVisible = 0;
391 | defaultConfigurationName = Release;
392 | };
393 | C01FCF4E08A954540054247B /* Build configuration list for PBXProject "CHViewControllerSwitcher" */ = {
394 | isa = XCConfigurationList;
395 | buildConfigurations = (
396 | C01FCF4F08A954540054247B /* Debug */,
397 | C01FCF5008A954540054247B /* Release */,
398 | );
399 | defaultConfigurationIsVisible = 0;
400 | defaultConfigurationName = Release;
401 | };
402 | /* End XCConfigurationList section */
403 | };
404 | rootObject = 29B97313FDCFA39411CA2CEA /* Project object */;
405 | }
406 |
--------------------------------------------------------------------------------
/CHViewControllerSwitcher.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/CHViewControllerSwitcher.xcodeproj/xcuserdata/admin.xcuserdatad/xcschemes/NETabVC.xcscheme:
--------------------------------------------------------------------------------
1 |
2 |
4 |
7 |
8 |
14 |
20 |
21 |
22 |
23 |
24 |
29 |
30 |
31 |
32 |
40 |
41 |
47 |
48 |
49 |
50 |
51 |
52 |
59 |
60 |
66 |
67 |
68 |
69 |
71 |
72 |
75 |
76 |
77 |
--------------------------------------------------------------------------------
/CHViewControllerSwitcher.xcodeproj/xcuserdata/admin.xcuserdatad/xcschemes/SwitcherTest-iPad.xcscheme:
--------------------------------------------------------------------------------
1 |
2 |
4 |
7 |
8 |
14 |
20 |
21 |
22 |
23 |
24 |
29 |
30 |
31 |
32 |
40 |
41 |
47 |
48 |
49 |
50 |
51 |
52 |
59 |
60 |
66 |
67 |
68 |
69 |
71 |
72 |
75 |
76 |
77 |
--------------------------------------------------------------------------------
/CHViewControllerSwitcher.xcodeproj/xcuserdata/admin.xcuserdatad/xcschemes/xcschememanagement.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | SchemeUserState
6 |
7 | NETabVC.xcscheme
8 |
9 | orderHint
10 | 0
11 |
12 | SwitcherTest-iPad.xcscheme
13 |
14 | orderHint
15 | 1
16 |
17 |
18 | SuppressBuildableAutocreation
19 |
20 | 1D6058900D05DD3D006BFB54
21 |
22 | primary
23 |
24 |
25 | 84E09C8E134893EB00811A9E
26 |
27 | primary
28 |
29 |
30 |
31 |
32 |
33 |
--------------------------------------------------------------------------------
/CHViewControllerSwitcher_Prefix.pch:
--------------------------------------------------------------------------------
1 | //
2 | // Prefix header for all source files of the 'CHViewControllerSwitcher' target in the 'CHViewControllerSwitcher' project
3 | //
4 |
5 | #ifdef __OBJC__
6 | #import
7 | #import
8 | #endif
9 |
--------------------------------------------------------------------------------
/Classes/AppDelegate.h:
--------------------------------------------------------------------------------
1 | //
2 | // AppDelegate.h
3 | // CHViewControllerSwitcher
4 | //
5 | // Copyright 2011 cheolhee. All rights reserved.
6 | //
7 |
8 | #import
9 |
10 | @class CHViewControllerSwitcher;
11 |
12 | @interface AppDelegate : NSObject {
13 | UIWindow *window;
14 | CHViewControllerSwitcher *viewController;
15 |
16 | UINavigationController *_nvc;
17 | UIViewController *_vc1;
18 | UIViewController *_vc2;
19 |
20 | }
21 |
22 | @property (nonatomic, retain) IBOutlet UINavigationController *nvc;
23 | @property (nonatomic, retain) IBOutlet UIViewController *vc1;
24 | @property (nonatomic, retain) IBOutlet UIViewController *vc2;
25 | @property (nonatomic, retain) IBOutlet UIWindow *window;
26 | @property (nonatomic, retain) IBOutlet CHViewControllerSwitcher *viewController;
27 |
28 |
29 | @end
30 |
31 |
--------------------------------------------------------------------------------
/Classes/AppDelegate.m:
--------------------------------------------------------------------------------
1 | //
2 | // AppDelegate.m
3 | // CHViewControllerSwitcher
4 | //
5 |
6 | // Copyright 2011 cheolhee. All rights reserved.
7 | //
8 |
9 | #import "AppDelegate.h"
10 | #import "CHViewControllerSwitcher.h"
11 |
12 | @implementation AppDelegate
13 |
14 | @synthesize nvc = _nvc;
15 | @synthesize vc1 = _vc1;
16 | @synthesize vc2 = _vc2;
17 | @synthesize window;
18 | @synthesize viewController;
19 |
20 |
21 | #pragma mark -
22 | #pragma mark Application lifecycle
23 |
24 |
25 |
26 | - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
27 |
28 | // Override point for customization after application launch.
29 |
30 | // Add the view controller's view to the window and display.
31 |
32 |
33 | NSArray * ar =
34 | [NSArray arrayWithObjects:self.nvc, self.vc1, self.vc2, nil];
35 |
36 | [viewController setViewControllers:ar];
37 |
38 |
39 |
40 | [self.window addSubview:viewController.view];
41 |
42 |
43 | [self.window makeKeyAndVisible];
44 |
45 | return YES;
46 | }
47 |
48 |
49 | - (void)applicationWillResignActive:(UIApplication *)application {
50 | /*
51 | Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state.
52 | Use this method to pause ongoing tasks, disable timers, and throttle down OpenGL ES frame rates. Games should use this method to pause the game.
53 | */
54 | }
55 |
56 |
57 | - (void)applicationDidEnterBackground:(UIApplication *)application {
58 | /*
59 | Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later.
60 | If your application supports background execution, called instead of applicationWillTerminate: when the user quits.
61 | */
62 | }
63 |
64 |
65 | - (void)applicationWillEnterForeground:(UIApplication *)application {
66 | /*
67 | Called as part of transition from the background to the inactive state: here you can undo many of the changes made on entering the background.
68 | */
69 | }
70 |
71 |
72 | - (void)applicationDidBecomeActive:(UIApplication *)application {
73 | /*
74 | Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface.
75 | */
76 | }
77 |
78 |
79 | - (void)applicationWillTerminate:(UIApplication *)application {
80 | /*
81 | Called when the application is about to terminate.
82 | See also applicationDidEnterBackground:.
83 | */
84 | }
85 |
86 |
87 | #pragma mark -
88 | #pragma mark Memory management
89 |
90 | - (void)applicationDidReceiveMemoryWarning:(UIApplication *)application {
91 | /*
92 | Free up as much memory as possible by purging cached data objects that can be recreated (or reloaded from disk) later.
93 | */
94 | }
95 |
96 |
97 | - (void)dealloc {
98 | [viewController release];
99 | [window release];
100 | self.nvc = nil;
101 | self.vc1 = nil;
102 | self.vc2 = nil;
103 |
104 | [super dealloc];
105 | }
106 |
107 |
108 | @end
109 |
--------------------------------------------------------------------------------
/Classes/CHViewControllerSwitcher.h:
--------------------------------------------------------------------------------
1 | //
2 | // CHViewControllerSwitcher.h
3 | // CHViewControllerSwitcher
4 | //
5 | // Copyright 2011 cheolhee. All rights reserved.
6 | //
7 |
8 | #import
9 |
10 | @interface CHViewControllerSwitcher : UIViewController {
11 |
12 | NSMutableArray *_viewControllers;
13 |
14 | UIViewController *_selectedViewController;
15 |
16 | UIView *_layoutView;
17 |
18 | NSInteger _oldIndex;
19 | NSUInteger _selectedIndex;
20 |
21 | BOOL _useCustomFrameSize;
22 | CGRect _frameForPortrait;
23 | CGRect _frameForLandscape;
24 |
25 | }
26 |
27 | @property (nonatomic, retain) IBOutlet UIView *layoutView;
28 | @property (nonatomic, assign) BOOL useCustomFrameSize;
29 | @property (nonatomic, assign) NSUInteger selectedIndex;
30 | @property (nonatomic, assign) UIViewController *selectedViewController;
31 | @property (nonatomic, assign) CGRect frameForPortrait;
32 | @property (nonatomic, assign) CGRect frameForLandscape;
33 | @property (nonatomic, copy) NSArray *viewControllers;
34 |
35 |
36 |
37 |
38 | @end
39 |
40 |
--------------------------------------------------------------------------------
/Classes/CHViewControllerSwitcher.m:
--------------------------------------------------------------------------------
1 | //
2 | // CHViewControllerSwitcher.m
3 | // CHViewControllerSwitcher
4 | //
5 | // Copyright 2011 cheolhee. All rights reserved.
6 | //
7 |
8 | #import "CHViewControllerSwitcher.h"
9 |
10 |
11 | @interface CHViewControllerSwitcher (NEPrivateMethods)
12 |
13 | -(void)layoutSubview;
14 | -(void)setSelectedIndex:(NSUInteger)idx force:(BOOL)force;
15 |
16 | @end
17 |
18 | @implementation CHViewControllerSwitcher
19 |
20 | @synthesize useCustomFrameSize = _useCustomFrameSize;
21 | @synthesize selectedIndex = _selectedIndex;
22 | @synthesize selectedViewController = _selectedViewController;
23 | @synthesize layoutView = _layoutView;
24 | @synthesize frameForPortrait = _frameForPortrait;
25 | @synthesize frameForLandscape = _frameForLandscape;
26 | @synthesize viewControllers = _viewControllers;
27 |
28 |
29 |
30 | //*
31 | // The designated initializer. Override to perform setup that is required before the view is loaded.
32 | - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil {
33 | self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
34 | if (self) {
35 | _useCustomFrameSize = NO;
36 | _selectedViewController = nil;
37 | // Custom initialization
38 | }
39 | return self;
40 | }
41 |
42 | -(void)awakeFromNib {
43 | _useCustomFrameSize = NO;
44 | _selectedViewController = nil;
45 | }
46 |
47 | -(id)init {
48 | self = [super init];
49 | if (self) {
50 | _useCustomFrameSize = NO;
51 | _selectedViewController = nil;
52 | }
53 | return self;
54 | }
55 |
56 | //*/
57 |
58 | /*
59 | // Implement loadView to create a view hierarchy programmatically, without using a nib.
60 | - (void)loadView {
61 | }
62 | */
63 |
64 | /*
65 | // Implement viewDidLoad to do additional setup after loading the view, typically from a nib.
66 | - (void)viewDidLoad {
67 | [super viewDidLoad];
68 | }
69 | /*/
70 |
71 |
72 | -(NSArray*)viewControllers {
73 | if (!_viewControllers) {
74 | return nil;
75 | }
76 | return [NSArray arrayWithArray:_viewControllers];
77 | }
78 |
79 | -(void)setViewControllers:(NSArray *)vcs {
80 | for (UIViewController *vc in _viewControllers) {
81 | [vc.view removeFromSuperview];
82 | }
83 | [_viewControllers release];
84 |
85 | int count = vcs.count;
86 | _viewControllers = [[NSMutableArray alloc] initWithCapacity:count];
87 |
88 | for (UIViewController *vc in vcs) {
89 | [_viewControllers addObject:vc];
90 | }
91 |
92 | _selectedViewController = nil;
93 | int idx = _selectedIndex;
94 | if (idx<0 || idx>=count) {
95 | idx = 0;
96 | }
97 |
98 | [self setSelectedIndex:idx force:YES];
99 | }
100 |
101 |
102 | -(void)setSelectedViewController:(UIViewController *)viewController {
103 | NSUInteger idx = [_viewControllers indexOfObject:viewController];
104 | if (idx!=NSNotFound) {
105 | [self setSelectedIndex:idx];
106 | }
107 | }
108 |
109 | -(void)setSelectedIndex:(NSUInteger)idx {
110 | [self setSelectedIndex:idx force:NO];
111 | }
112 |
113 | -(void)setSelectedIndex:(NSUInteger)idx force:(BOOL)force {
114 |
115 | static BOOL animated = NO;
116 |
117 | if (!_selectedViewController) {//_selectedIndex==NSNotFound) {
118 | UIViewController *newVC = [_viewControllers objectAtIndex:idx];
119 | _selectedIndex = idx;
120 | _selectedViewController = newVC;
121 |
122 | [newVC viewWillAppear:animated];
123 | [self layoutSubview];
124 | [newVC viewDidAppear:animated];
125 | } else
126 | if (force || idx!=_selectedIndex) {
127 |
128 | UIViewController *oldVC = [_viewControllers objectAtIndex:_selectedIndex];
129 | UIViewController *newVC = [_viewControllers objectAtIndex:idx];
130 | _selectedIndex = idx;
131 | _selectedViewController = newVC;
132 |
133 | [oldVC.view removeFromSuperview];
134 | [oldVC viewWillDisappear:animated];
135 | [newVC viewWillAppear:animated];
136 |
137 | [self layoutSubview];
138 |
139 | [oldVC viewDidDisappear:animated];
140 | [newVC viewDidAppear:animated];
141 |
142 | }
143 |
144 |
145 | }
146 |
147 | - (void)viewWillAppear:(BOOL)animated {
148 | [super viewWillAppear:animated];
149 | [self.selectedViewController viewWillAppear:animated];
150 | [self layoutSubview];
151 | }
152 |
153 |
154 | - (void)viewDidAppear:(BOOL)animated {
155 | [super viewDidAppear:animated];
156 | [self.selectedViewController viewDidAppear:animated];
157 | }
158 |
159 |
160 | - (void)viewWillDisappear:(BOOL)animated {
161 | [super viewWillDisappear:animated];
162 | [self.selectedViewController viewWillDisappear:animated];
163 | }
164 |
165 |
166 | - (void)viewDidDisappear:(BOOL)animated {
167 | [super viewDidDisappear:animated];
168 | [self.selectedViewController viewDidDisappear:animated];
169 | }
170 |
171 | - (void)layoutSubviewForInterfaceOrientation:(UIInterfaceOrientation)orientation {
172 |
173 | UIViewController *vc = self.selectedViewController;
174 | UIView *v = vc.view;
175 | #ifdef DEBUG
176 | NSLog(@"selectedIndex=%d", _selectedIndex);
177 | NSLog(@"selectedVC=%@", _selectedViewController);
178 | NSLog(@"v=%@", v);
179 | #endif
180 | if (v) {
181 | if (_useCustomFrameSize) {
182 | CGRect frame = UIInterfaceOrientationIsPortrait(orientation)
183 | ? _frameForPortrait : _frameForLandscape;
184 | self.layoutView.frame = frame;
185 | }
186 | v.frame = self.layoutView.bounds;
187 | if (!v.superview) {
188 | [self.layoutView addSubview:v];
189 | }
190 | // static BOOL _f = NO;//YES;
191 | //
192 | // if (_f) {
193 | //
194 | // if ([vc isKindOfClass:[UINavigationController class]]) {
195 | // UINavigationController *nvc = (UINavigationController*)vc;
196 | // BOOL f = nvc.navigationBarHidden;
197 | // nvc.navigationBarHidden = !f;
198 | // nvc.navigationBarHidden = f;
199 | // }
200 | // _f = NO;
201 | // }
202 | }
203 |
204 | }
205 |
206 | - (void)layoutSubview {
207 | [self layoutSubviewForInterfaceOrientation:self.interfaceOrientation];
208 | }
209 |
210 |
211 | - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
212 | return YES;
213 | }
214 |
215 | - (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration
216 | {
217 | [self.selectedViewController willRotateToInterfaceOrientation:toInterfaceOrientation duration:duration];
218 | }
219 |
220 |
221 | - (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation
222 | {
223 | [self.selectedViewController didRotateFromInterfaceOrientation:fromInterfaceOrientation];
224 |
225 | #ifdef DEBUG
226 | NSLog(@"%@", self.selectedViewController);
227 | NSLog(@"%@", self.selectedViewController.view);
228 | #endif
229 | }
230 |
231 |
232 | - (void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration
233 | {
234 | [self.selectedViewController willAnimateRotationToInterfaceOrientation:toInterfaceOrientation duration:duration];
235 | // Re-tile views.
236 | [self layoutSubviewForInterfaceOrientation:toInterfaceOrientation];
237 | }
238 |
239 |
240 | - (void)willAnimateFirstHalfOfRotationToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration
241 | {
242 | [self.selectedViewController willAnimateFirstHalfOfRotationToInterfaceOrientation:toInterfaceOrientation duration:duration];
243 | }
244 |
245 |
246 | - (void)didAnimateFirstHalfOfRotationToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation
247 | {
248 | [self.selectedViewController didAnimateFirstHalfOfRotationToInterfaceOrientation:toInterfaceOrientation];
249 | }
250 |
251 |
252 | - (void)willAnimateSecondHalfOfRotationFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation duration:(NSTimeInterval)duration
253 | {
254 | [self.selectedViewController willAnimateSecondHalfOfRotationFromInterfaceOrientation:fromInterfaceOrientation duration:duration];
255 | }
256 |
257 | //- (void)didReceiveMemoryWarning {
258 | // [super didReceiveMemoryWarning];
259 | //}
260 |
261 | - (void)viewDidUnload {
262 | self.layoutView = nil;
263 | }
264 |
265 |
266 | - (void)dealloc {
267 | _selectedViewController = nil;
268 | [_viewControllers release];
269 | _viewControllers = nil;
270 | self.layoutView = nil;
271 |
272 | [super dealloc];
273 | }
274 |
275 | @end
276 |
--------------------------------------------------------------------------------
/Classes/Switcher.h:
--------------------------------------------------------------------------------
1 | //
2 | // MyVC.h
3 | // CHViewControllerSwitcher
4 | //
5 | // Created by admin on 11/04/03.
6 | // Copyright 2011 __MyCompanyName__. All rights reserved.
7 | //
8 |
9 | #import
10 | #import "CHViewControllerSwitcher.h"
11 |
12 | @interface Switcher : CHViewControllerSwitcher {
13 |
14 | }
15 |
16 | -(IBAction)switchViews:(UISegmentedControl*)seg;
17 |
18 |
19 | @end
20 |
--------------------------------------------------------------------------------
/Classes/Switcher.m:
--------------------------------------------------------------------------------
1 | //
2 | // MyVC.m
3 | // CHViewControllerSwitcher
4 | //
5 | // Created by admin on 11/04/03.
6 | // Copyright 2011 __MyCompanyName__. All rights reserved.
7 | //
8 |
9 | #import "Switcher.h"
10 |
11 |
12 | @implementation Switcher
13 |
14 |
15 | -(IBAction)switchViews:(UISegmentedControl*)seg {
16 | self.selectedIndex = seg.selectedSegmentIndex;
17 | }
18 |
19 | // The designated initializer. Override if you create the controller programmatically and want to perform customization that is not appropriate for viewDidLoad.
20 | /*
21 | - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil {
22 | self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
23 | if (self) {
24 | // Custom initialization.
25 | }
26 | return self;
27 | }
28 | */
29 |
30 | /*
31 | // Implement loadView to create a view hierarchy programmatically, without using a nib.
32 | - (void)loadView {
33 | }
34 | */
35 |
36 | - (void)viewDidLoad {
37 | [super viewDidLoad];
38 |
39 | if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
40 | self.frameForPortrait = CGRectMake(20, 74, 728, 865);
41 | self.frameForLandscape = CGRectMake(20, 74, 400, 609);
42 |
43 | } else {
44 | self.frameForPortrait = CGRectMake(20, 50, 280, 350);
45 | self.frameForLandscape = CGRectMake(20, 50, 300, 180);
46 |
47 | }
48 |
49 | self.useCustomFrameSize = YES;
50 |
51 | }
52 |
53 | /*
54 | // Override to allow orientations other than the default portrait orientation.
55 | - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
56 | // Return YES for supported orientations.
57 | return (interfaceOrientation == UIInterfaceOrientationPortrait);
58 | }
59 | */
60 |
61 | - (void)didReceiveMemoryWarning {
62 | // Releases the view if it doesn't have a superview.
63 | [super didReceiveMemoryWarning];
64 |
65 | // Release any cached data, images, etc. that aren't in use.
66 | }
67 |
68 | - (void)viewDidUnload {
69 | [super viewDidUnload];
70 | // Release any retained subviews of the main view.
71 | // e.g. self.myOutlet = nil;
72 | }
73 |
74 |
75 | - (void)dealloc {
76 | [super dealloc];
77 | }
78 |
79 |
80 | @end
81 |
--------------------------------------------------------------------------------
/Classes/TableVC.h:
--------------------------------------------------------------------------------
1 | //
2 | // MyTblVC.h
3 | // CHViewControllerSwitcher
4 | //
5 |
6 | // Copyright 2011 cheolhee. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 |
12 | @interface TableVC : UITableViewController {
13 |
14 | }
15 |
16 | @end
17 |
--------------------------------------------------------------------------------
/Classes/TableVC.m:
--------------------------------------------------------------------------------
1 | //
2 | // MyTblVC.m
3 | // CHViewControllerSwitcher
4 | //
5 |
6 | // Copyright 2011 cheolhee. All rights reserved.
7 | //
8 |
9 | #import "TableVC.h"
10 |
11 |
12 | @implementation TableVC
13 |
14 |
15 | #pragma mark -
16 | #pragma mark Initialization
17 |
18 | /*
19 | - (id)initWithStyle:(UITableViewStyle)style {
20 | // Override initWithStyle: if you create the controller programmatically and want to perform customization that is not appropriate for viewDidLoad.
21 | self = [super initWithStyle:style];
22 | if (self) {
23 | // Custom initialization.
24 | }
25 | return self;
26 | }
27 | */
28 |
29 |
30 | #pragma mark -
31 | #pragma mark View lifecycle
32 |
33 | /*
34 | - (void)viewDidLoad {
35 | [super viewDidLoad];
36 |
37 | // Uncomment the following line to display an Edit button in the navigation bar for this view controller.
38 | // self.navigationItem.rightBarButtonItem = self.editButtonItem;
39 | }
40 | */
41 |
42 | /*
43 | - (void)viewWillAppear:(BOOL)animated {
44 | [super viewWillAppear:animated];
45 | }
46 | */
47 | /*
48 | - (void)viewDidAppear:(BOOL)animated {
49 | [super viewDidAppear:animated];
50 | }
51 | */
52 | /*
53 | - (void)viewWillDisappear:(BOOL)animated {
54 | [super viewWillDisappear:animated];
55 | }
56 | */
57 | /*
58 | - (void)viewDidDisappear:(BOOL)animated {
59 | [super viewDidDisappear:animated];
60 | }
61 | */
62 | /*
63 | // Override to allow orientations other than the default portrait orientation.
64 | - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
65 | // Return YES for supported orientations.
66 | return (interfaceOrientation == UIInterfaceOrientationPortrait);
67 | }
68 | */
69 |
70 |
71 | #pragma mark -
72 | #pragma mark Table view data source
73 |
74 | - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
75 | // Return the number of sections.
76 | return 3;
77 | }
78 |
79 |
80 | - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
81 | // Return the number of rows in the section.
82 | return 5;
83 | }
84 |
85 |
86 | // Customize the appearance of table view cells.
87 | - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
88 |
89 | static NSString *CellIdentifier = @"Cell";
90 |
91 | UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
92 | if (cell == nil) {
93 | cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
94 | }
95 |
96 | // Configure the cell...
97 | cell.textLabel.text = [NSString stringWithFormat:@"%02d %04d"
98 | , indexPath.section, indexPath.row];
99 |
100 | return cell;
101 | }
102 |
103 |
104 | /*
105 | // Override to support conditional editing of the table view.
106 | - (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath {
107 | // Return NO if you do not want the specified item to be editable.
108 | return YES;
109 | }
110 | */
111 |
112 |
113 | /*
114 | // Override to support editing the table view.
115 | - (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath {
116 |
117 | if (editingStyle == UITableViewCellEditingStyleDelete) {
118 | // Delete the row from the data source.
119 | [tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationFade];
120 | }
121 | else if (editingStyle == UITableViewCellEditingStyleInsert) {
122 | // Create a new instance of the appropriate class, insert it into the array, and add a new row to the table view.
123 | }
124 | }
125 | */
126 |
127 |
128 | /*
129 | // Override to support rearranging the table view.
130 | - (void)tableView:(UITableView *)tableView moveRowAtIndexPath:(NSIndexPath *)fromIndexPath toIndexPath:(NSIndexPath *)toIndexPath {
131 | }
132 | */
133 |
134 |
135 | /*
136 | // Override to support conditional rearranging of the table view.
137 | - (BOOL)tableView:(UITableView *)tableView canMoveRowAtIndexPath:(NSIndexPath *)indexPath {
138 | // Return NO if you do not want the item to be re-orderable.
139 | return YES;
140 | }
141 | */
142 |
143 |
144 | #pragma mark -
145 | #pragma mark Table view delegate
146 |
147 | - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
148 |
149 | TableVC *vc = [[TableVC alloc] init];
150 |
151 | [self.navigationController pushViewController:vc animated:1];
152 | [vc release];
153 | // Navigation logic may go here. Create and push another view controller.
154 | /*
155 | <#DetailViewController#> *detailViewController = [[<#DetailViewController#> alloc] initWithNibName:@"<#Nib name#>" bundle:nil];
156 | // ...
157 | // Pass the selected object to the new view controller.
158 | [self.navigationController pushViewController:detailViewController animated:YES];
159 | [detailViewController release];
160 | */
161 | }
162 |
163 |
164 | #pragma mark -
165 | #pragma mark Memory management
166 |
167 | - (void)didReceiveMemoryWarning {
168 | // Releases the view if it doesn't have a superview.
169 | [super didReceiveMemoryWarning];
170 |
171 | // Relinquish ownership any cached data, images, etc. that aren't in use.
172 | }
173 |
174 | - (void)viewDidUnload {
175 | // Relinquish ownership of anything that can be recreated in viewDidLoad or on demand.
176 | // For example: self.myOutlet = nil;
177 | }
178 |
179 |
180 | - (void)dealloc {
181 | [super dealloc];
182 | }
183 |
184 |
185 | @end
186 |
187 |
--------------------------------------------------------------------------------
/MainWindow.xib:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | 1056
5 | 10J869
6 | 823
7 | 1038.35
8 | 461.00
9 |
13 |
17 |
21 |
30 |
31 | YES
32 |
33 | IBFilesOwner
34 | IBCocoaTouchFramework
35 |
36 |
37 | IBFirstResponder
38 | IBCocoaTouchFramework
39 |
40 |
41 | IBCocoaTouchFramework
42 |
43 |
44 | Switcher
45 |
46 |
47 | 1
48 |
49 | IBCocoaTouchFramework
50 | NO
51 |
52 |
53 |
54 | 292
55 | {320, 480}
56 |
57 | 1
58 | MSAxIDEAA
59 |
60 | NO
61 | NO
62 |
63 | IBCocoaTouchFramework
64 | YES
65 |
66 |
67 |
68 |
69 | 1
70 |
71 | IBCocoaTouchFramework
72 | NO
73 |
74 |
75 | 256
76 | {0, 0}
77 | NO
78 | YES
79 | YES
80 | IBCocoaTouchFramework
81 |
82 |
83 |
84 | 256
85 | {{0, 436}, {320, 44}}
86 | NO
87 | YES
88 | 4
89 | YES
90 | IBCocoaTouchFramework
91 |
92 |
93 | YES
94 |
95 |
96 |
97 | 274
98 | {320, 372}
99 |
100 |
101 | 3
102 | MQA
103 |
104 | YES
105 | IBCocoaTouchFramework
106 | YES
107 | NO
108 | 1
109 | 0
110 | YES
111 | 44
112 | 22
113 | 22
114 |
115 |
116 | YES
117 |
118 | IBCocoaTouchFramework
119 | 1
120 |
121 | 7
122 |
123 |
124 | IBCocoaTouchFramework
125 |
126 | 5
127 |
128 |
129 | IBCocoaTouchFramework
130 | 1
131 |
132 | 9
133 |
134 |
135 |
136 |
137 | Navigation
138 |
139 | IBCocoaTouchFramework
140 | 1
141 |
142 | 13
143 |
144 | IBCocoaTouchFramework
145 |
146 |
147 |
148 |
149 | 1
150 |
151 | IBCocoaTouchFramework
152 | NO
153 |
154 |
155 | NO
156 |
157 |
158 |
159 |
160 | 274
161 | {320, 480}
162 |
163 | 1
164 | MSAwLjQwMDAwMDAwNiAwLjQwMDAwMDAwNgA
165 |
166 | IBCocoaTouchFramework
167 |
168 |
169 | 1
170 |
171 | IBCocoaTouchFramework
172 | NO
173 |
174 |
175 |
176 |
177 | 274
178 | {320, 480}
179 |
180 | YES
181 | YES
182 | IBCocoaTouchFramework
183 | Lorem ipsum dolor sit er elit lamet, consectetaur cillium adipisicing pecu, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. Nam liber te conscient to factor tum poen legum odioque civiuda.
184 |
185 | 2
186 | IBCocoaTouchFramework
187 |
188 |
189 |
190 | 1
191 |
192 | IBCocoaTouchFramework
193 | NO
194 |
195 |
196 |
197 |
198 | YES
199 |
200 |
201 | delegate
202 |
203 |
204 |
205 | 4
206 |
207 |
208 |
209 | window
210 |
211 |
212 |
213 | 14
214 |
215 |
216 |
217 | delegate
218 |
219 |
220 |
221 | 25
222 |
223 |
224 |
225 | dataSource
226 |
227 |
228 |
229 | 26
230 |
231 |
232 |
233 | nvc
234 |
235 |
236 |
237 | 32
238 |
239 |
240 |
241 | vc1
242 |
243 |
244 |
245 | 35
246 |
247 |
248 |
249 | vc2
250 |
251 |
252 |
253 | 36
254 |
255 |
256 |
257 | viewController
258 |
259 |
260 |
261 | 55
262 |
263 |
264 |
265 |
266 | YES
267 |
268 | 0
269 |
270 |
271 |
272 |
273 |
274 | -1
275 |
276 |
277 | File's Owner
278 |
279 |
280 | 3
281 |
282 |
283 | NETabVC App Delegate
284 |
285 |
286 | -2
287 |
288 |
289 |
290 |
291 | 10
292 |
293 |
294 |
295 |
296 | 12
297 |
298 |
299 |
300 |
301 | 16
302 |
303 |
304 | YES
305 |
306 |
307 |
308 |
309 |
310 |
311 |
312 | 17
313 |
314 |
315 | YES
316 |
317 |
318 |
319 |
320 |
321 |
322 |
323 |
324 |
325 | 18
326 |
327 |
328 |
329 |
330 | 19
331 |
332 |
333 | YES
334 |
335 |
336 |
337 |
338 |
339 | 20
340 |
341 |
342 |
343 |
344 | 24
345 |
346 |
347 |
348 |
349 | 27
350 |
351 |
352 |
353 |
354 | 28
355 |
356 |
357 |
358 |
359 | 29
360 |
361 |
362 |
363 |
364 | 30
365 |
366 |
367 |
368 |
369 | 33
370 |
371 |
372 | YES
373 |
374 |
375 |
376 |
377 |
378 | 34
379 |
380 |
381 | YES
382 |
383 |
384 |
385 |
386 |
387 | 37
388 |
389 |
390 |
391 |
392 | 39
393 |
394 |
395 |
396 |
397 |
398 |
399 | YES
400 |
401 | YES
402 | -1.CustomClassName
403 | -2.CustomClassName
404 | 10.CustomClassName
405 | 10.IBEditorWindowLastContentRect
406 | 10.IBPluginDependency
407 | 12.IBEditorWindowLastContentRect
408 | 12.IBPluginDependency
409 | 16.IBEditorWindowLastContentRect
410 | 16.IBPluginDependency
411 | 17.CustomClassName
412 | 17.IBPluginDependency
413 | 18.IBPluginDependency
414 | 19.IBPluginDependency
415 | 24.IBPluginDependency
416 | 27.IBPluginDependency
417 | 28.IBPluginDependency
418 | 29.IBPluginDependency
419 | 3.CustomClassName
420 | 3.IBPluginDependency
421 | 30.IBPluginDependency
422 | 33.IBEditorWindowLastContentRect
423 | 33.IBPluginDependency
424 | 34.IBEditorWindowLastContentRect
425 | 34.IBPluginDependency
426 | 37.IBPluginDependency
427 | 39.IBPluginDependency
428 |
429 |
430 | YES
431 | UIApplication
432 | UIResponder
433 | Switcher
434 | {{234, 376}, {320, 480}}
435 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin
436 | {{525, 346}, {320, 480}}
437 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin
438 | {{21, 342}, {320, 480}}
439 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin
440 | TableVC
441 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin
442 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin
443 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin
444 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin
445 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin
446 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin
447 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin
448 | AppDelegate
449 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin
450 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin
451 | {{0, 534}, {320, 480}}
452 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin
453 | {{826, 118}, {320, 480}}
454 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin
455 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin
456 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin
457 |
458 |
459 |
460 | YES
461 |
462 |
463 | YES
464 |
465 |
466 |
467 |
468 | YES
469 |
470 |
471 | YES
472 |
473 |
474 |
475 | 55
476 |
477 |
478 |
479 | YES
480 |
481 | AppDelegate
482 | NSObject
483 |
484 | YES
485 |
486 | YES
487 | nvc
488 | vc1
489 | vc2
490 | viewController
491 | window
492 |
493 |
494 | YES
495 | UINavigationController
496 | UIViewController
497 | UIViewController
498 | CHViewControllerSwitcher
499 | UIWindow
500 |
501 |
502 |
503 | YES
504 |
505 | YES
506 | nvc
507 | vc1
508 | vc2
509 | viewController
510 | window
511 |
512 |
513 | YES
514 |
515 | nvc
516 | UINavigationController
517 |
518 |
519 | vc1
520 | UIViewController
521 |
522 |
523 | vc2
524 | UIViewController
525 |
526 |
527 | viewController
528 | CHViewControllerSwitcher
529 |
530 |
531 | window
532 | UIWindow
533 |
534 |
535 |
536 |
537 | IBProjectSource
538 | Classes/AppDelegate.h
539 |
540 |
541 |
542 | CHViewControllerSwitcher
543 | UIViewController
544 |
545 | layoutView
546 | UIView
547 |
548 |
549 | layoutView
550 |
551 | layoutView
552 | UIView
553 |
554 |
555 |
556 | IBProjectSource
557 | Classes/CHViewControllerSwitcher.h
558 |
559 |
560 |
561 | CHViewControllerSwitcher
562 | UIViewController
563 |
564 | touch_select:
565 | UISegmentedControl
566 |
567 |
568 | touch_select:
569 |
570 | touch_select:
571 | UISegmentedControl
572 |
573 |
574 |
575 | IBUserSource
576 |
577 |
578 |
579 |
580 | Switcher
581 | CHViewControllerSwitcher
582 |
583 | switchViews:
584 | UISegmentedControl
585 |
586 |
587 | switchViews:
588 |
589 | switchViews:
590 | UISegmentedControl
591 |
592 |
593 |
594 | IBProjectSource
595 | Classes/Switcher.h
596 |
597 |
598 |
599 | Switcher
600 | CHViewControllerSwitcher
601 |
602 | IBUserSource
603 |
604 |
605 |
606 |
607 | TableVC
608 | UITableViewController
609 |
610 | IBProjectSource
611 | Classes/TableVC.h
612 |
613 |
614 |
615 | TableVC
616 | UITableViewController
617 |
618 | IBUserSource
619 |
620 |
621 |
622 |
623 | UIWindow
624 | UIView
625 |
626 | IBUserSource
627 |
628 |
629 |
630 |
631 |
632 | YES
633 |
634 | NSObject
635 |
636 | IBFrameworkSource
637 | Foundation.framework/Headers/NSError.h
638 |
639 |
640 |
641 | NSObject
642 |
643 | IBFrameworkSource
644 | Foundation.framework/Headers/NSFileManager.h
645 |
646 |
647 |
648 | NSObject
649 |
650 | IBFrameworkSource
651 | Foundation.framework/Headers/NSKeyValueCoding.h
652 |
653 |
654 |
655 | NSObject
656 |
657 | IBFrameworkSource
658 | Foundation.framework/Headers/NSKeyValueObserving.h
659 |
660 |
661 |
662 | NSObject
663 |
664 | IBFrameworkSource
665 | Foundation.framework/Headers/NSKeyedArchiver.h
666 |
667 |
668 |
669 | NSObject
670 |
671 | IBFrameworkSource
672 | Foundation.framework/Headers/NSObject.h
673 |
674 |
675 |
676 | NSObject
677 |
678 | IBFrameworkSource
679 | Foundation.framework/Headers/NSRunLoop.h
680 |
681 |
682 |
683 | NSObject
684 |
685 | IBFrameworkSource
686 | Foundation.framework/Headers/NSThread.h
687 |
688 |
689 |
690 | NSObject
691 |
692 | IBFrameworkSource
693 | Foundation.framework/Headers/NSURL.h
694 |
695 |
696 |
697 | NSObject
698 |
699 | IBFrameworkSource
700 | Foundation.framework/Headers/NSURLConnection.h
701 |
702 |
703 |
704 | NSObject
705 |
706 | IBFrameworkSource
707 | UIKit.framework/Headers/UIAccessibility.h
708 |
709 |
710 |
711 | NSObject
712 |
713 | IBFrameworkSource
714 | UIKit.framework/Headers/UINibLoading.h
715 |
716 |
717 |
718 | NSObject
719 |
720 | IBFrameworkSource
721 | UIKit.framework/Headers/UIResponder.h
722 |
723 |
724 |
725 | UIApplication
726 | UIResponder
727 |
728 | IBFrameworkSource
729 | UIKit.framework/Headers/UIApplication.h
730 |
731 |
732 |
733 | UIBarButtonItem
734 | UIBarItem
735 |
736 | IBFrameworkSource
737 | UIKit.framework/Headers/UIBarButtonItem.h
738 |
739 |
740 |
741 | UIBarItem
742 | NSObject
743 |
744 | IBFrameworkSource
745 | UIKit.framework/Headers/UIBarItem.h
746 |
747 |
748 |
749 | UIControl
750 | UIView
751 |
752 | IBFrameworkSource
753 | UIKit.framework/Headers/UIControl.h
754 |
755 |
756 |
757 | UINavigationBar
758 | UIView
759 |
760 | IBFrameworkSource
761 | UIKit.framework/Headers/UINavigationBar.h
762 |
763 |
764 |
765 | UINavigationController
766 | UIViewController
767 |
768 | IBFrameworkSource
769 | UIKit.framework/Headers/UINavigationController.h
770 |
771 |
772 |
773 | UINavigationItem
774 | NSObject
775 |
776 |
777 |
778 | UIResponder
779 | NSObject
780 |
781 |
782 |
783 | UIScrollView
784 | UIView
785 |
786 | IBFrameworkSource
787 | UIKit.framework/Headers/UIScrollView.h
788 |
789 |
790 |
791 | UISearchBar
792 | UIView
793 |
794 | IBFrameworkSource
795 | UIKit.framework/Headers/UISearchBar.h
796 |
797 |
798 |
799 | UISearchDisplayController
800 | NSObject
801 |
802 | IBFrameworkSource
803 | UIKit.framework/Headers/UISearchDisplayController.h
804 |
805 |
806 |
807 | UISegmentedControl
808 | UIControl
809 |
810 | IBFrameworkSource
811 | UIKit.framework/Headers/UISegmentedControl.h
812 |
813 |
814 |
815 | UITableView
816 | UIScrollView
817 |
818 | IBFrameworkSource
819 | UIKit.framework/Headers/UITableView.h
820 |
821 |
822 |
823 | UITableViewController
824 | UIViewController
825 |
826 | IBFrameworkSource
827 | UIKit.framework/Headers/UITableViewController.h
828 |
829 |
830 |
831 | UITextView
832 | UIScrollView
833 |
834 | IBFrameworkSource
835 | UIKit.framework/Headers/UITextView.h
836 |
837 |
838 |
839 | UIToolbar
840 | UIView
841 |
842 | IBFrameworkSource
843 | UIKit.framework/Headers/UIToolbar.h
844 |
845 |
846 |
847 | UIView
848 |
849 | IBFrameworkSource
850 | UIKit.framework/Headers/UIPrintFormatter.h
851 |
852 |
853 |
854 | UIView
855 |
856 | IBFrameworkSource
857 | UIKit.framework/Headers/UITextField.h
858 |
859 |
860 |
861 | UIView
862 | UIResponder
863 |
864 | IBFrameworkSource
865 | UIKit.framework/Headers/UIView.h
866 |
867 |
868 |
869 | UIViewController
870 |
871 |
872 |
873 | UIViewController
874 |
875 | IBFrameworkSource
876 | UIKit.framework/Headers/UIPopoverController.h
877 |
878 |
879 |
880 | UIViewController
881 |
882 | IBFrameworkSource
883 | UIKit.framework/Headers/UISplitViewController.h
884 |
885 |
886 |
887 | UIViewController
888 |
889 | IBFrameworkSource
890 | UIKit.framework/Headers/UITabBarController.h
891 |
892 |
893 |
894 | UIViewController
895 | UIResponder
896 |
897 | IBFrameworkSource
898 | UIKit.framework/Headers/UIViewController.h
899 |
900 |
901 |
902 | UIWindow
903 | UIView
904 |
905 | IBFrameworkSource
906 | UIKit.framework/Headers/UIWindow.h
907 |
908 |
909 |
910 |
911 | 0
912 | IBCocoaTouchFramework
913 |
914 | com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS
915 |
916 |
917 |
918 | com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3
919 |
920 |
921 | YES
922 | CHViewControllerSwitcher.xcodeproj
923 | 3
924 | 132
925 |
926 |
927 |
--------------------------------------------------------------------------------
/README.markdown:
--------------------------------------------------------------------------------
1 | CHViewControllerSwitcher
2 | =====================
3 | CHViewControllerSwitcher is a replacement for UITabBarController, with useful features.
4 |
5 | Why I created this
6 | --------------------------
7 | UITabBarController is a great selection interface. However, some people want:
8 | - a tab bar at the top of the window
9 | - six or seven buttons on the tab bar
10 | - their own tab bar
11 |
12 | Features
13 | -------------
14 | - Allows you to create your own selection interface with UI-components.
15 | - Allows you to use just some part of the window, not the full-screen mode.
16 | - Allows you to custom frame sizes of the content view for the portrait/landscape modes.
17 |
18 |
19 |
20 | Copyright (c) 2011 cheolhee
21 |
22 | Permission is hereby granted, free of charge, to any person obtaining a copy
23 | of this software and associated documentation files (the "Software"), to deal
24 | in the Software without restriction, including without limitation the rights
25 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
26 | copies of the Software, and to permit persons to whom the Software is furnished
27 | to do so, subject to the following conditions:
28 |
29 | The above copyright notice and this permission notice shall be included in all
30 | copies or substantial portions of the Software.
31 |
32 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
33 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
34 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
35 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
36 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
37 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
38 | THE SOFTWARE.
--------------------------------------------------------------------------------
/Resources-iPad/MainWindow.xib:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | 1056
5 | 10J869
6 | 823
7 | 1038.35
8 | 461.00
9 |
10 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin
11 | 132
12 |
13 |
14 | YES
15 |
16 |
17 | YES
18 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin
19 |
20 |
21 | YES
22 |
23 | YES
24 |
25 |
26 | YES
27 |
28 |
29 |
30 | YES
31 |
32 | IBFilesOwner
33 | IBIPadFramework
34 |
35 |
36 | IBFirstResponder
37 | IBIPadFramework
38 |
39 |
40 | IBIPadFramework
41 |
42 |
43 | Switcher
44 |
45 | 2
46 |
47 |
48 | 1
49 |
50 | IBIPadFramework
51 | NO
52 |
53 |
54 |
55 | 292
56 | {768, 1004}
57 |
58 | 1
59 | MSAxIDEAA
60 |
61 | NO
62 | NO
63 |
64 | IBIPadFramework
65 | YES
66 |
67 |
68 |
69 |
70 | 1
71 |
72 | IBIPadFramework
73 | NO
74 |
75 |
76 | 256
77 | {0, 0}
78 | NO
79 | YES
80 | YES
81 | IBIPadFramework
82 |
83 |
84 |
85 | 256
86 | {{0, 436}, {320, 44}}
87 | NO
88 | YES
89 | 4
90 | YES
91 | IBIPadFramework
92 |
93 |
94 | YES
95 |
96 |
97 |
98 | 274
99 | {768, 916}
100 |
101 | 3
102 | MQA
103 |
104 | YES
105 | IBIPadFramework
106 | YES
107 | NO
108 | 1
109 | 0
110 | YES
111 | 44
112 | 22
113 | 22
114 |
115 |
116 | YES
117 |
118 | IBIPadFramework
119 | 1
120 | 7
121 |
122 |
123 | IBIPadFramework
124 | 5
125 |
126 |
127 | IBIPadFramework
128 | 1
129 | 9
130 |
131 |
132 |
133 | Navigation
134 |
135 | IBIPadFramework
136 | 1
137 |
138 | 13
139 |
140 | IBIPadFramework
141 |
142 |
143 |
144 |
145 | 1
146 |
147 | IBIPadFramework
148 | NO
149 |
150 |
151 | NO
152 |
153 |
154 |
155 |
156 | 274
157 | {768, 1024}
158 |
159 | 1
160 | MSAwLjQwMDAwMDAwNiAwLjQwMDAwMDAwNgA
161 |
162 | IBIPadFramework
163 |
164 |
165 | 1
166 |
167 | IBIPadFramework
168 | NO
169 |
170 |
171 |
172 |
173 | 274
174 | {768, 1024}
175 |
176 | YES
177 | YES
178 | IBIPadFramework
179 | Lorem ipsum dolor sit er elit lamet, consectetaur cillium adipisicing pecu, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. Nam liber te conscient to factor tum poen legum odioque civiuda.
180 |
181 | 2
182 | IBCocoaTouchFramework
183 |
184 |
185 |
186 | 1
187 |
188 | IBIPadFramework
189 | NO
190 |
191 |
192 |
193 |
194 | YES
195 |
196 |
197 | delegate
198 |
199 |
200 |
201 | 4
202 |
203 |
204 |
205 | window
206 |
207 |
208 |
209 | 14
210 |
211 |
212 |
213 | delegate
214 |
215 |
216 |
217 | 25
218 |
219 |
220 |
221 | dataSource
222 |
223 |
224 |
225 | 26
226 |
227 |
228 |
229 | nvc
230 |
231 |
232 |
233 | 32
234 |
235 |
236 |
237 | vc1
238 |
239 |
240 |
241 | 35
242 |
243 |
244 |
245 | vc2
246 |
247 |
248 |
249 | 36
250 |
251 |
252 |
253 | viewController
254 |
255 |
256 |
257 | 55
258 |
259 |
260 |
261 |
262 | YES
263 |
264 | 0
265 |
266 |
267 |
268 |
269 |
270 | -1
271 |
272 |
273 | File's Owner
274 |
275 |
276 | 3
277 |
278 |
279 | NETabVC App Delegate
280 |
281 |
282 | -2
283 |
284 |
285 |
286 |
287 | 10
288 |
289 |
290 |
291 |
292 | 12
293 |
294 |
295 |
296 |
297 | 16
298 |
299 |
300 | YES
301 |
302 |
303 |
304 |
305 |
306 |
307 |
308 | 17
309 |
310 |
311 | YES
312 |
313 |
314 |
315 |
316 |
317 |
318 |
319 |
320 |
321 | 18
322 |
323 |
324 |
325 |
326 | 19
327 |
328 |
329 | YES
330 |
331 |
332 |
333 |
334 |
335 | 20
336 |
337 |
338 |
339 |
340 | 24
341 |
342 |
343 |
344 |
345 | 27
346 |
347 |
348 |
349 |
350 | 28
351 |
352 |
353 |
354 |
355 | 29
356 |
357 |
358 |
359 |
360 | 30
361 |
362 |
363 |
364 |
365 | 33
366 |
367 |
368 | YES
369 |
370 |
371 |
372 |
373 |
374 | 34
375 |
376 |
377 | YES
378 |
379 |
380 |
381 |
382 |
383 | 37
384 |
385 |
386 |
387 |
388 | 39
389 |
390 |
391 |
392 |
393 |
394 |
395 | YES
396 |
397 | YES
398 | -1.CustomClassName
399 | -2.CustomClassName
400 | 10.CustomClassName
401 | 10.IBEditorWindowLastContentRect
402 | 10.IBLastUsedUIStatusBarStylesToTargetRuntimesMap
403 | 10.IBPluginDependency
404 | 12.IBEditorWindowLastContentRect
405 | 12.IBLastUsedUIStatusBarStylesToTargetRuntimesMap
406 | 12.IBPluginDependency
407 | 16.IBEditorWindowLastContentRect
408 | 16.IBLastUsedUIStatusBarStylesToTargetRuntimesMap
409 | 16.IBPluginDependency
410 | 17.CustomClassName
411 | 17.IBPluginDependency
412 | 18.IBPluginDependency
413 | 19.IBPluginDependency
414 | 24.IBPluginDependency
415 | 27.IBPluginDependency
416 | 28.IBPluginDependency
417 | 29.IBPluginDependency
418 | 3.CustomClassName
419 | 3.IBPluginDependency
420 | 30.IBPluginDependency
421 | 33.IBEditorWindowLastContentRect
422 | 33.IBPluginDependency
423 | 34.IBEditorWindowLastContentRect
424 | 34.IBPluginDependency
425 | 37.IBPluginDependency
426 | 39.IBPluginDependency
427 |
428 |
429 | YES
430 | UIApplication
431 | UIResponder
432 | Switcher
433 | {{234, 376}, {320, 480}}
434 |
435 | IBCocoaTouchFramework
436 |
437 |
438 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin
439 | {{525, 346}, {320, 480}}
440 |
441 | IBCocoaTouchFramework
442 |
443 |
444 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin
445 | {{21, 342}, {320, 480}}
446 |
447 | IBCocoaTouchFramework
448 |
449 |
450 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin
451 | TableVC
452 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin
453 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin
454 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin
455 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin
456 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin
457 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin
458 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin
459 | AppDelegate
460 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin
461 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin
462 | {{0, 534}, {320, 480}}
463 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin
464 | {{826, 118}, {320, 480}}
465 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin
466 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin
467 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin
468 |
469 |
470 |
471 | YES
472 |
473 |
474 | YES
475 |
476 |
477 |
478 |
479 | YES
480 |
481 |
482 | YES
483 |
484 |
485 |
486 | 55
487 |
488 |
489 |
490 | YES
491 |
492 | AppDelegate
493 | NSObject
494 |
495 | YES
496 |
497 | YES
498 | nvc
499 | vc1
500 | vc2
501 | viewController
502 | window
503 |
504 |
505 | YES
506 | UINavigationController
507 | UIViewController
508 | UIViewController
509 | CHViewControllerSwitcher
510 | UIWindow
511 |
512 |
513 |
514 | YES
515 |
516 | YES
517 | nvc
518 | vc1
519 | vc2
520 | viewController
521 | window
522 |
523 |
524 | YES
525 |
526 | nvc
527 | UINavigationController
528 |
529 |
530 | vc1
531 | UIViewController
532 |
533 |
534 | vc2
535 | UIViewController
536 |
537 |
538 | viewController
539 | CHViewControllerSwitcher
540 |
541 |
542 | window
543 | UIWindow
544 |
545 |
546 |
547 |
548 | IBProjectSource
549 | Classes/AppDelegate.h
550 |
551 |
552 |
553 | CHViewControllerSwitcher
554 | UIViewController
555 |
556 | layoutView
557 | UIView
558 |
559 |
560 | layoutView
561 |
562 | layoutView
563 | UIView
564 |
565 |
566 |
567 | IBProjectSource
568 | Classes/CHViewControllerSwitcher.h
569 |
570 |
571 |
572 | CHViewControllerSwitcher
573 | UIViewController
574 |
575 | touch_select:
576 | UISegmentedControl
577 |
578 |
579 | touch_select:
580 |
581 | touch_select:
582 | UISegmentedControl
583 |
584 |
585 |
586 | IBUserSource
587 |
588 |
589 |
590 |
591 | Switcher
592 | CHViewControllerSwitcher
593 |
594 | switchViews:
595 | UISegmentedControl
596 |
597 |
598 | switchViews:
599 |
600 | switchViews:
601 | UISegmentedControl
602 |
603 |
604 |
605 | IBProjectSource
606 | Classes/Switcher.h
607 |
608 |
609 |
610 | Switcher
611 | CHViewControllerSwitcher
612 |
613 | IBUserSource
614 |
615 |
616 |
617 |
618 | TableVC
619 | UITableViewController
620 |
621 | IBProjectSource
622 | Classes/TableVC.h
623 |
624 |
625 |
626 | TableVC
627 | UITableViewController
628 |
629 | IBUserSource
630 |
631 |
632 |
633 |
634 | UIWindow
635 | UIView
636 |
637 | IBUserSource
638 |
639 |
640 |
641 |
642 |
643 | YES
644 |
645 | NSObject
646 |
647 | IBFrameworkSource
648 | Foundation.framework/Headers/NSError.h
649 |
650 |
651 |
652 | NSObject
653 |
654 | IBFrameworkSource
655 | Foundation.framework/Headers/NSFileManager.h
656 |
657 |
658 |
659 | NSObject
660 |
661 | IBFrameworkSource
662 | Foundation.framework/Headers/NSKeyValueCoding.h
663 |
664 |
665 |
666 | NSObject
667 |
668 | IBFrameworkSource
669 | Foundation.framework/Headers/NSKeyValueObserving.h
670 |
671 |
672 |
673 | NSObject
674 |
675 | IBFrameworkSource
676 | Foundation.framework/Headers/NSKeyedArchiver.h
677 |
678 |
679 |
680 | NSObject
681 |
682 | IBFrameworkSource
683 | Foundation.framework/Headers/NSObject.h
684 |
685 |
686 |
687 | NSObject
688 |
689 | IBFrameworkSource
690 | Foundation.framework/Headers/NSRunLoop.h
691 |
692 |
693 |
694 | NSObject
695 |
696 | IBFrameworkSource
697 | Foundation.framework/Headers/NSThread.h
698 |
699 |
700 |
701 | NSObject
702 |
703 | IBFrameworkSource
704 | Foundation.framework/Headers/NSURL.h
705 |
706 |
707 |
708 | NSObject
709 |
710 | IBFrameworkSource
711 | Foundation.framework/Headers/NSURLConnection.h
712 |
713 |
714 |
715 | NSObject
716 |
717 | IBFrameworkSource
718 | UIKit.framework/Headers/UIAccessibility.h
719 |
720 |
721 |
722 | NSObject
723 |
724 | IBFrameworkSource
725 | UIKit.framework/Headers/UINibLoading.h
726 |
727 |
728 |
729 | NSObject
730 |
731 | IBFrameworkSource
732 | UIKit.framework/Headers/UIResponder.h
733 |
734 |
735 |
736 | UIApplication
737 | UIResponder
738 |
739 | IBFrameworkSource
740 | UIKit.framework/Headers/UIApplication.h
741 |
742 |
743 |
744 | UIBarButtonItem
745 | UIBarItem
746 |
747 | IBFrameworkSource
748 | UIKit.framework/Headers/UIBarButtonItem.h
749 |
750 |
751 |
752 | UIBarItem
753 | NSObject
754 |
755 | IBFrameworkSource
756 | UIKit.framework/Headers/UIBarItem.h
757 |
758 |
759 |
760 | UIControl
761 | UIView
762 |
763 | IBFrameworkSource
764 | UIKit.framework/Headers/UIControl.h
765 |
766 |
767 |
768 | UINavigationBar
769 | UIView
770 |
771 | IBFrameworkSource
772 | UIKit.framework/Headers/UINavigationBar.h
773 |
774 |
775 |
776 | UINavigationController
777 | UIViewController
778 |
779 | IBFrameworkSource
780 | UIKit.framework/Headers/UINavigationController.h
781 |
782 |
783 |
784 | UINavigationItem
785 | NSObject
786 |
787 |
788 |
789 | UIResponder
790 | NSObject
791 |
792 |
793 |
794 | UIScrollView
795 | UIView
796 |
797 | IBFrameworkSource
798 | UIKit.framework/Headers/UIScrollView.h
799 |
800 |
801 |
802 | UISearchBar
803 | UIView
804 |
805 | IBFrameworkSource
806 | UIKit.framework/Headers/UISearchBar.h
807 |
808 |
809 |
810 | UISearchDisplayController
811 | NSObject
812 |
813 | IBFrameworkSource
814 | UIKit.framework/Headers/UISearchDisplayController.h
815 |
816 |
817 |
818 | UISegmentedControl
819 | UIControl
820 |
821 | IBFrameworkSource
822 | UIKit.framework/Headers/UISegmentedControl.h
823 |
824 |
825 |
826 | UITableView
827 | UIScrollView
828 |
829 | IBFrameworkSource
830 | UIKit.framework/Headers/UITableView.h
831 |
832 |
833 |
834 | UITableViewController
835 | UIViewController
836 |
837 | IBFrameworkSource
838 | UIKit.framework/Headers/UITableViewController.h
839 |
840 |
841 |
842 | UITextView
843 | UIScrollView
844 |
845 | IBFrameworkSource
846 | UIKit.framework/Headers/UITextView.h
847 |
848 |
849 |
850 | UIToolbar
851 | UIView
852 |
853 | IBFrameworkSource
854 | UIKit.framework/Headers/UIToolbar.h
855 |
856 |
857 |
858 | UIView
859 |
860 | IBFrameworkSource
861 | UIKit.framework/Headers/UIPrintFormatter.h
862 |
863 |
864 |
865 | UIView
866 |
867 | IBFrameworkSource
868 | UIKit.framework/Headers/UITextField.h
869 |
870 |
871 |
872 | UIView
873 | UIResponder
874 |
875 | IBFrameworkSource
876 | UIKit.framework/Headers/UIView.h
877 |
878 |
879 |
880 | UIViewController
881 |
882 |
883 |
884 | UIViewController
885 |
886 | IBFrameworkSource
887 | UIKit.framework/Headers/UIPopoverController.h
888 |
889 |
890 |
891 | UIViewController
892 |
893 | IBFrameworkSource
894 | UIKit.framework/Headers/UISplitViewController.h
895 |
896 |
897 |
898 | UIViewController
899 |
900 | IBFrameworkSource
901 | UIKit.framework/Headers/UITabBarController.h
902 |
903 |
904 |
905 | UIViewController
906 | UIResponder
907 |
908 | IBFrameworkSource
909 | UIKit.framework/Headers/UIViewController.h
910 |
911 |
912 |
913 | UIWindow
914 | UIView
915 |
916 | IBFrameworkSource
917 | UIKit.framework/Headers/UIWindow.h
918 |
919 |
920 |
921 |
922 | 0
923 | IBIPadFramework
924 |
925 | com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS
926 |
927 |
928 |
929 | com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3
930 |
931 |
932 | YES
933 | CHViewControllerSwitcher.xcodeproj
934 | 3
935 | 132
936 |
937 |
938 |
--------------------------------------------------------------------------------
/Resources-iPad/Switcher.xib:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | 1056
5 | 10J869
6 | 823
7 | 1038.35
8 | 461.00
9 |
10 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin
11 | 132
12 |
13 |
14 | YES
15 |
16 |
17 |
18 | YES
19 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin
20 |
21 |
22 | YES
23 |
24 | YES
25 |
26 |
27 | YES
28 |
29 |
30 |
31 | YES
32 |
33 | IBFilesOwner
34 | IBIPadFramework
35 |
36 |
37 | IBFirstResponder
38 | IBIPadFramework
39 |
40 |
41 |
42 | 274
43 |
44 | YES
45 |
46 |
47 | 289
48 | {{507, 94}, {228, 173}}
49 |
50 |
51 | 3
52 | MQA
53 |
54 | YES
55 | 0.76760566234588623
56 | NO
57 | IBIPadFramework
58 | NO
59 | useCustomFrameSize=YES to ignore Auto Resizing
60 |
61 | Helvetica
62 | 14
63 | 16
64 |
65 |
66 | 2
67 | IBCocoaTouchFramework
68 |
69 |
70 |
71 |
72 | 290
73 | {{20, 20}, {728, 30}}
74 |
75 | NO
76 | IBIPadFramework
77 | 2
78 | 3
79 | 0
80 |
81 | YES
82 | 1
83 | 2
84 | 3
85 |
86 |
87 | YES
88 |
89 |
90 |
91 |
92 |
93 | YES
94 |
95 |
96 |
97 |
98 |
99 | YES
100 | {0, 0}
101 | {0, 0}
102 | {0, 0}
103 |
104 |
105 | YES
106 |
107 |
108 |
109 |
110 | YES
111 |
112 |
113 |
114 | 274
115 | {{20, 74}, {728, 865}}
116 |
117 |
118 | 1
119 | MC44MDAwMDAwMTE5IDEgMC40MDAwMDAwMDYAA
120 |
121 | IBIPadFramework
122 |
123 |
124 |
125 | 282
126 | {{140, 827}, {598, 147}}
127 |
128 |
129 | YES
130 | 0.76760566234588623
131 | NO
132 | IBIPadFramework
133 | NO
134 | Unlike UITabBarController, You can place views over the content view like this.
135 |
136 |
137 | 2
138 | IBCocoaTouchFramework
139 |
140 |
141 |
142 | {768, 1004}
143 |
144 |
145 | 3
146 | MC42NjY2NjY2NjY3AA
147 |
148 | NO
149 |
150 | 2
151 |
152 | IBIPadFramework
153 |
154 |
155 |
156 |
157 | YES
158 |
159 |
160 | view
161 |
162 |
163 |
164 | 7
165 |
166 |
167 |
168 | layoutView
169 |
170 |
171 |
172 | 14
173 |
174 |
175 |
176 | switchViews:
177 |
178 |
179 | 13
180 |
181 | 20
182 |
183 |
184 |
185 |
186 | YES
187 |
188 | 0
189 |
190 |
191 |
192 |
193 |
194 | -1
195 |
196 |
197 | File's Owner
198 |
199 |
200 | -2
201 |
202 |
203 |
204 |
205 | 6
206 |
207 |
208 | YES
209 |
210 |
211 |
212 |
213 |
214 |
215 |
216 |
217 | 9
218 |
219 |
220 | YES
221 |
222 |
223 |
224 |
225 | 15
226 |
227 |
228 |
229 |
230 | 18
231 |
232 |
233 |
234 |
235 | 22
236 |
237 |
238 |
239 |
240 |
241 |
242 | YES
243 |
244 | YES
245 | -1.CustomClassName
246 | -2.CustomClassName
247 | 15.IBPluginDependency
248 | 15.IBViewBoundsToFrameTransform
249 | 18.IBPluginDependency
250 | 18.IBViewBoundsToFrameTransform
251 | 22.IBPluginDependency
252 | 22.IBViewBoundsToFrameTransform
253 | 6.IBEditorWindowLastContentRect
254 | 6.IBLastUsedUIStatusBarStylesToTargetRuntimesMap
255 | 6.IBPluginDependency
256 | 9.IBPluginDependency
257 | 9.IBViewBoundsToFrameTransform
258 |
259 |
260 | YES
261 | Switcher
262 | UIResponder
263 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin
264 |
265 | P4AAAL+AAABDdAAAw5wAAA
266 |
267 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin
268 |
269 | AUMMAABETsAAA
270 |
271 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin
272 |
273 | AUP9gABCvAAAA
274 |
275 | {{80, 33}, {895, 1003}}
276 |
277 | IBCocoaTouchFramework
278 |
279 |
280 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin
281 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin
282 |
283 | P4AAAL+AAABDdAAAxCeAAA
284 |
285 |
286 |
287 |
288 | YES
289 |
290 |
291 | YES
292 |
293 |
294 |
295 |
296 | YES
297 |
298 |
299 | YES
300 |
301 |
302 |
303 | 22
304 |
305 |
306 |
307 | YES
308 |
309 | CHViewControllerSwitcher
310 | UIViewController
311 |
312 | layoutView
313 | UIView
314 |
315 |
316 | layoutView
317 |
318 | layoutView
319 | UIView
320 |
321 |
322 |
323 | IBProjectSource
324 | Classes/CHViewControllerSwitcher.h
325 |
326 |
327 |
328 | CHViewControllerSwitcher
329 | UIViewController
330 |
331 | IBUserSource
332 |
333 |
334 |
335 |
336 | Switcher
337 | CHViewControllerSwitcher
338 |
339 | switchViews:
340 | UISegmentedControl
341 |
342 |
343 | switchViews:
344 |
345 | switchViews:
346 | UISegmentedControl
347 |
348 |
349 |
350 | IBProjectSource
351 | Classes/Switcher.h
352 |
353 |
354 |
355 | Switcher
356 | CHViewControllerSwitcher
357 |
358 | IBUserSource
359 |
360 |
361 |
362 |
363 |
364 | YES
365 |
366 | NSObject
367 |
368 | IBFrameworkSource
369 | Foundation.framework/Headers/NSError.h
370 |
371 |
372 |
373 | NSObject
374 |
375 | IBFrameworkSource
376 | Foundation.framework/Headers/NSFileManager.h
377 |
378 |
379 |
380 | NSObject
381 |
382 | IBFrameworkSource
383 | Foundation.framework/Headers/NSKeyValueCoding.h
384 |
385 |
386 |
387 | NSObject
388 |
389 | IBFrameworkSource
390 | Foundation.framework/Headers/NSKeyValueObserving.h
391 |
392 |
393 |
394 | NSObject
395 |
396 | IBFrameworkSource
397 | Foundation.framework/Headers/NSKeyedArchiver.h
398 |
399 |
400 |
401 | NSObject
402 |
403 | IBFrameworkSource
404 | Foundation.framework/Headers/NSObject.h
405 |
406 |
407 |
408 | NSObject
409 |
410 | IBFrameworkSource
411 | Foundation.framework/Headers/NSRunLoop.h
412 |
413 |
414 |
415 | NSObject
416 |
417 | IBFrameworkSource
418 | Foundation.framework/Headers/NSThread.h
419 |
420 |
421 |
422 | NSObject
423 |
424 | IBFrameworkSource
425 | Foundation.framework/Headers/NSURL.h
426 |
427 |
428 |
429 | NSObject
430 |
431 | IBFrameworkSource
432 | Foundation.framework/Headers/NSURLConnection.h
433 |
434 |
435 |
436 | NSObject
437 |
438 | IBFrameworkSource
439 | UIKit.framework/Headers/UIAccessibility.h
440 |
441 |
442 |
443 | NSObject
444 |
445 | IBFrameworkSource
446 | UIKit.framework/Headers/UINibLoading.h
447 |
448 |
449 |
450 | NSObject
451 |
452 | IBFrameworkSource
453 | UIKit.framework/Headers/UIResponder.h
454 |
455 |
456 |
457 | UIControl
458 | UIView
459 |
460 | IBFrameworkSource
461 | UIKit.framework/Headers/UIControl.h
462 |
463 |
464 |
465 | UIResponder
466 | NSObject
467 |
468 |
469 |
470 | UIScrollView
471 | UIView
472 |
473 | IBFrameworkSource
474 | UIKit.framework/Headers/UIScrollView.h
475 |
476 |
477 |
478 | UISearchBar
479 | UIView
480 |
481 | IBFrameworkSource
482 | UIKit.framework/Headers/UISearchBar.h
483 |
484 |
485 |
486 | UISearchDisplayController
487 | NSObject
488 |
489 | IBFrameworkSource
490 | UIKit.framework/Headers/UISearchDisplayController.h
491 |
492 |
493 |
494 | UISegmentedControl
495 | UIControl
496 |
497 | IBFrameworkSource
498 | UIKit.framework/Headers/UISegmentedControl.h
499 |
500 |
501 |
502 | UITextView
503 | UIScrollView
504 |
505 | IBFrameworkSource
506 | UIKit.framework/Headers/UITextView.h
507 |
508 |
509 |
510 | UIView
511 |
512 | IBFrameworkSource
513 | UIKit.framework/Headers/UIPrintFormatter.h
514 |
515 |
516 |
517 | UIView
518 |
519 | IBFrameworkSource
520 | UIKit.framework/Headers/UITextField.h
521 |
522 |
523 |
524 | UIView
525 | UIResponder
526 |
527 | IBFrameworkSource
528 | UIKit.framework/Headers/UIView.h
529 |
530 |
531 |
532 | UIViewController
533 |
534 | IBFrameworkSource
535 | UIKit.framework/Headers/UINavigationController.h
536 |
537 |
538 |
539 | UIViewController
540 |
541 | IBFrameworkSource
542 | UIKit.framework/Headers/UIPopoverController.h
543 |
544 |
545 |
546 | UIViewController
547 |
548 | IBFrameworkSource
549 | UIKit.framework/Headers/UISplitViewController.h
550 |
551 |
552 |
553 | UIViewController
554 |
555 | IBFrameworkSource
556 | UIKit.framework/Headers/UITabBarController.h
557 |
558 |
559 |
560 | UIViewController
561 | UIResponder
562 |
563 | IBFrameworkSource
564 | UIKit.framework/Headers/UIViewController.h
565 |
566 |
567 |
568 |
569 | 0
570 | IBIPadFramework
571 |
572 | com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS
573 |
574 |
575 |
576 | com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3
577 |
578 |
579 | YES
580 | ../CHViewControllerSwitcher.xcodeproj
581 | 3
582 | 132
583 |
584 |
585 |
--------------------------------------------------------------------------------
/Switcher.xib:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | 1056
5 | 10J869
6 | 823
7 | 1038.35
8 | 461.00
9 |
10 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin
11 | 132
12 |
13 |
14 | YES
15 |
16 |
17 | YES
18 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin
19 |
20 |
21 | YES
22 |
23 | YES
24 |
25 |
26 | YES
27 |
28 |
29 |
30 | YES
31 |
32 | IBFilesOwner
33 | IBCocoaTouchFramework
34 |
35 |
36 | IBFirstResponder
37 | IBCocoaTouchFramework
38 |
39 |
40 |
41 | 274
42 |
43 | YES
44 |
45 |
46 | 290
47 | {{20, 12}, {280, 30}}
48 |
49 | NO
50 | IBCocoaTouchFramework
51 | 2
52 | 3
53 | 0
54 |
55 | YES
56 | 1
57 | 2
58 | 3
59 |
60 |
61 | YES
62 |
63 |
64 |
65 |
66 |
67 | YES
68 |
69 |
70 |
71 |
72 |
73 | YES
74 | {0, 0}
75 | {0, 0}
76 | {0, 0}
77 |
78 |
79 | YES
80 |
81 |
82 |
83 |
84 | YES
85 |
86 |
87 |
88 | 274
89 | {{20, 50}, {280, 350}}
90 |
91 |
92 | 1
93 | MC44MDAwMDAwMTE5IDEgMC40MDAwMDAwMDYAA
94 |
95 | IBCocoaTouchFramework
96 |
97 |
98 |
99 | 282
100 | {{44, 364}, {267, 82}}
101 |
102 |
103 | 3
104 | MQA
105 |
106 | YES
107 | 0.76760566234588623
108 | NO
109 | IBCocoaTouchFramework
110 | NO
111 | Unlike UITabBarController, You can place views over the content view like this.
112 |
113 | Helvetica
114 | 14
115 | 16
116 |
117 |
118 | 2
119 | IBCocoaTouchFramework
120 |
121 |
122 |
123 | {320, 460}
124 |
125 | 3
126 | MC42NjY2NjY2NjY3AA
127 |
128 | NO
129 |
130 | IBCocoaTouchFramework
131 |
132 |
133 |
134 |
135 | YES
136 |
137 |
138 | view
139 |
140 |
141 |
142 | 7
143 |
144 |
145 |
146 | layoutView
147 |
148 |
149 |
150 | 14
151 |
152 |
153 |
154 | switchViews:
155 |
156 |
157 | 13
158 |
159 | 20
160 |
161 |
162 |
163 |
164 | YES
165 |
166 | 0
167 |
168 |
169 |
170 |
171 |
172 | -1
173 |
174 |
175 | File's Owner
176 |
177 |
178 | -2
179 |
180 |
181 |
182 |
183 | 6
184 |
185 |
186 | YES
187 |
188 |
189 |
190 |
191 |
192 |
193 |
194 | 9
195 |
196 |
197 | YES
198 |
199 |
200 |
201 |
202 | 15
203 |
204 |
205 |
206 |
207 | 18
208 |
209 |
210 |
211 |
212 |
213 |
214 | YES
215 |
216 | YES
217 | -1.CustomClassName
218 | -2.CustomClassName
219 | 15.IBPluginDependency
220 | 18.IBPluginDependency
221 | 18.IBViewBoundsToFrameTransform
222 | 6.IBEditorWindowLastContentRect
223 | 6.IBPluginDependency
224 | 9.IBPluginDependency
225 | 9.IBViewBoundsToFrameTransform
226 |
227 |
228 | YES
229 | Switcher
230 | UIResponder
231 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin
232 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin
233 |
234 | P4AAAL+AAADBYAAAw3oAAA
235 |
236 | {{80, 172}, {320, 480}}
237 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin
238 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin
239 |
240 | P4AAAL+AAABBoAAAw8cAAA
241 |
242 |
243 |
244 |
245 | YES
246 |
247 |
248 | YES
249 |
250 |
251 |
252 |
253 | YES
254 |
255 |
256 | YES
257 |
258 |
259 |
260 | 20
261 |
262 |
263 |
264 | YES
265 |
266 | CHViewControllerSwitcher
267 | UIViewController
268 |
269 | layoutView
270 | UIView
271 |
272 |
273 | layoutView
274 |
275 | layoutView
276 | UIView
277 |
278 |
279 |
280 | IBProjectSource
281 | Classes/CHViewControllerSwitcher.h
282 |
283 |
284 |
285 | CHViewControllerSwitcher
286 | UIViewController
287 |
288 | IBUserSource
289 |
290 |
291 |
292 |
293 | Switcher
294 | CHViewControllerSwitcher
295 |
296 | switchViews:
297 | UISegmentedControl
298 |
299 |
300 | switchViews:
301 |
302 | switchViews:
303 | UISegmentedControl
304 |
305 |
306 |
307 | IBUserSource
308 |
309 |
310 |
311 |
312 |
313 | YES
314 |
315 | NSObject
316 |
317 | IBFrameworkSource
318 | Foundation.framework/Headers/NSError.h
319 |
320 |
321 |
322 | NSObject
323 |
324 | IBFrameworkSource
325 | Foundation.framework/Headers/NSFileManager.h
326 |
327 |
328 |
329 | NSObject
330 |
331 | IBFrameworkSource
332 | Foundation.framework/Headers/NSKeyValueCoding.h
333 |
334 |
335 |
336 | NSObject
337 |
338 | IBFrameworkSource
339 | Foundation.framework/Headers/NSKeyValueObserving.h
340 |
341 |
342 |
343 | NSObject
344 |
345 | IBFrameworkSource
346 | Foundation.framework/Headers/NSKeyedArchiver.h
347 |
348 |
349 |
350 | NSObject
351 |
352 | IBFrameworkSource
353 | Foundation.framework/Headers/NSObject.h
354 |
355 |
356 |
357 | NSObject
358 |
359 | IBFrameworkSource
360 | Foundation.framework/Headers/NSRunLoop.h
361 |
362 |
363 |
364 | NSObject
365 |
366 | IBFrameworkSource
367 | Foundation.framework/Headers/NSThread.h
368 |
369 |
370 |
371 | NSObject
372 |
373 | IBFrameworkSource
374 | Foundation.framework/Headers/NSURL.h
375 |
376 |
377 |
378 | NSObject
379 |
380 | IBFrameworkSource
381 | Foundation.framework/Headers/NSURLConnection.h
382 |
383 |
384 |
385 | NSObject
386 |
387 | IBFrameworkSource
388 | UIKit.framework/Headers/UIAccessibility.h
389 |
390 |
391 |
392 | NSObject
393 |
394 | IBFrameworkSource
395 | UIKit.framework/Headers/UINibLoading.h
396 |
397 |
398 |
399 | NSObject
400 |
401 | IBFrameworkSource
402 | UIKit.framework/Headers/UIResponder.h
403 |
404 |
405 |
406 | UIControl
407 | UIView
408 |
409 | IBFrameworkSource
410 | UIKit.framework/Headers/UIControl.h
411 |
412 |
413 |
414 | UIResponder
415 | NSObject
416 |
417 |
418 |
419 | UIScrollView
420 | UIView
421 |
422 | IBFrameworkSource
423 | UIKit.framework/Headers/UIScrollView.h
424 |
425 |
426 |
427 | UISearchBar
428 | UIView
429 |
430 | IBFrameworkSource
431 | UIKit.framework/Headers/UISearchBar.h
432 |
433 |
434 |
435 | UISearchDisplayController
436 | NSObject
437 |
438 | IBFrameworkSource
439 | UIKit.framework/Headers/UISearchDisplayController.h
440 |
441 |
442 |
443 | UISegmentedControl
444 | UIControl
445 |
446 | IBFrameworkSource
447 | UIKit.framework/Headers/UISegmentedControl.h
448 |
449 |
450 |
451 | UITextView
452 | UIScrollView
453 |
454 | IBFrameworkSource
455 | UIKit.framework/Headers/UITextView.h
456 |
457 |
458 |
459 | UIView
460 |
461 | IBFrameworkSource
462 | UIKit.framework/Headers/UIPrintFormatter.h
463 |
464 |
465 |
466 | UIView
467 |
468 | IBFrameworkSource
469 | UIKit.framework/Headers/UITextField.h
470 |
471 |
472 |
473 | UIView
474 | UIResponder
475 |
476 | IBFrameworkSource
477 | UIKit.framework/Headers/UIView.h
478 |
479 |
480 |
481 | UIViewController
482 |
483 | IBFrameworkSource
484 | UIKit.framework/Headers/UINavigationController.h
485 |
486 |
487 |
488 | UIViewController
489 |
490 | IBFrameworkSource
491 | UIKit.framework/Headers/UIPopoverController.h
492 |
493 |
494 |
495 | UIViewController
496 |
497 | IBFrameworkSource
498 | UIKit.framework/Headers/UISplitViewController.h
499 |
500 |
501 |
502 | UIViewController
503 |
504 | IBFrameworkSource
505 | UIKit.framework/Headers/UITabBarController.h
506 |
507 |
508 |
509 | UIViewController
510 | UIResponder
511 |
512 | IBFrameworkSource
513 | UIKit.framework/Headers/UIViewController.h
514 |
515 |
516 |
517 |
518 | 0
519 | IBCocoaTouchFramework
520 |
521 | com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS
522 |
523 |
524 |
525 | com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3
526 |
527 |
528 | YES
529 | NETabVC.xcodeproj
530 | 3
531 | 132
532 |
533 |
534 |
--------------------------------------------------------------------------------
/main.m:
--------------------------------------------------------------------------------
1 | //
2 | // main.m
3 | // CHViewControllerSwitcher
4 | //
5 |
6 | // Copyright 2011 cheolhee. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | int main(int argc, char *argv[]) {
12 | // instrumentObjcMessageSends(YES);
13 |
14 | NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
15 | int retVal = UIApplicationMain(argc, argv, nil, nil);
16 | [pool release];
17 | return retVal;
18 | }
19 |
--------------------------------------------------------------------------------