Хорошо, так что терпите меня: поскольку это вопрос, связанный с Objective-C, очевидно, много кода и подклассов.Так вот моя проблема.Прямо сейчас у меня есть приложение для iPad, которое программно создает кнопку и два цветных UIViews.Эти цветные UIViews управляются SubViewControllers, и все это находится в UIView, управляемом MainViewController.(т.е. MainViewController = [UIButton, SubViewController, SubViewController])
Теперь все это происходит так, как должно, и я получаю то, что ожидаю (ниже):
Однако, когда я нажимаю кнопку, и на консоли отображается «flipSubView1», ничего не происходит.Никакое модальное представление не показывается, и никаких ошибок не происходит.Совсем ничего.Я ожидаю, что либо subView1, либо весь вид будет перевернут горизонтально и покажет subView3.Есть ли какой-то код, который мне не хватает, который может вызвать это / есть какая-то ошибка, которую я пропускаю?
viewtoolsAppDelegate.m
@implementation viewtoolsAppDelegate
@synthesize window = _window;
@synthesize mvc;
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
// Override point for customization after application launch.
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
mvc = [[MainViewController alloc] initWithFrame:self.window.frame];
[self.window addSubview:mvc.theView];
[self.window makeKeyAndVisible];
return YES;
}
MainViewController.m
@implementation MainViewController
@synthesize theView;
@synthesize subView1, subView2, subView3;
- (id)initWithFrame:(CGRect) frame
{
theView = [[UIView alloc] initWithFrame:frame];
CGRect sV1Rect = CGRectMake(frame.origin.x+44, frame.origin.y, frame.size.width-44, frame.size.height/2);
CGRect sV2Rect = CGRectMake(frame.origin.x+44, frame.origin.y+frame.size.height/2, frame.size.width-44, frame.size.height/2);
subView1 = [[SubViewController alloc] initWithFrame:sV1Rect andColor:[UIColor blueColor]];
subView2 = [[SubViewController alloc] initWithFrame:sV2Rect andColor:[UIColor greenColor]];
subView3 = [[SubViewController alloc] initWithFrame:sV1Rect andColor:[UIColor redColor]];
[theView addSubview:subView1.theView];
[theView addSubview:subView2.theView];
UIButton *aButton = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[aButton addTarget:self action:@selector(flipSubView1:) forControlEvents:(UIControlEvents)UIControlEventTouchDown];
[aButton setFrame:CGRectMake(0, 0, 44, frame.size.height)];
[theView addSubview:aButton];
return self;
}
- (void)flipSubView1:(id) sender
{
NSLog(@"flipSubView1");
[subView3 setModalTransitionStyle:UIModalTransitionStyleFlipHorizontal];
[subView1 presentModalViewController:subView3 animated:YES];
}
SubViewController.m
@implementation SubViewController
@synthesize theView;
- (id)initWithFrame:(CGRect)frame andColor:(UIColor *)color
{
theView = [[UIView alloc] initWithFrame:frame];
theView.backgroundColor = color;
return self;
}
TLDR: модальное представление не работает.должен увидеть флип.нет.