Я сделал приложение, где вы встряхиваете телефон, чтобы открыть новый вид. Все вместе три вида, и когда вы трясете телефон на последнем экране, вы возвращаетесь на первый экран. Это прекрасно работает, когда я создаю новое представление элементов управления подкласса с собственным .xib. Но я хотел бы использовать это в проекте раскадровки, что мне нужно изменить?
Заранее большое спасибо!
ЗДЕСЬ КОД В .H:
#import <UIKit/UIKit.h>
#import "FirstScreenViewController.h"
#import "SecondScreenViewController.h"
@ interface ViewController: UIViewController
{
NSInteger currentScreen;
UIViewController* currentController;
}
@ конец
И ЗДЕСЬ В .M:
#import "ViewController.h"
@ реализация ViewController
- (Недействительными) didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Release any cached data, images, etc that aren't in use.
}
#pragma mark shake
- (BOOL) canBecomeFirstResponder
{
return true;
}
- (void) motionEnded: (UIEventSubtype) motion withEvent: (UIEvent *) событие
{
if(motion == UIEventSubtypeMotionShake)
{
if (currentController)
{
[currentController.view removeFromSuperview];
currentController = ноль;
}
switch (currentScreen)
{* * тысяча пятьдесят-один
case 0:
currentController = [[FirstScreenViewController alloc] initWithNibName:@"FirstScreenViewController" bundle:nil];
break;
case 1:
currentController = [[SecondScreenViewController alloc] initWithNibName:@"SecondScreenViewController" bundle:nil];
}
if(currentController)
{
[currentController.view setFrame:self.view.bounds];
[self.view addSubview:currentController.view];
}
currentScreen++;
if(currentScreen >2)
currentScreen=0;
}
}
#pragma mark - View lifecycle
- (Недействительными) viewDidLoad
{
[super viewDidLoad];
currentScreen = 0;
}
- (Недействительными) viewDidUnload
{
[super viewDidUnload];
// Release any retained subviews of the main view.
// e.g. self.myOutlet = nil;
}
@ конец