Попытка отклонить подпредставление и UIView - PullRequest
1 голос
/ 06 января 2012

Я все еще очень новичок в разработке для iOS. На самом деле, если есть супер нуб, я бы один: с. В настоящее время я работаю над созданием кнопки IBAction, которая обращается к подпредставлению. У меня есть 2 ViewControllers, AddClientVC и NewClientVC, оба с файлами .nib. Таким образом, внутри моего AddClientVC я реализую кнопку IBAction со следующим кодом:

- (IBAction)buttonPressed:(id)sender
{
    UIView *transparentBG = [[UIView alloc] initWithFrame:CGRectMake(-5, -5, 1500, 2500)];
    transparentBG.backgroundColor = [UIColor blackColor];
    transparentBG.opaque = NO;
    transparentBG.alpha = 0.5;
    [self.view addSubview:transparentBG];
    transparentBG.center = transparentBG.center;

    vc = [[NewClientVC alloc] initWithNibName:@"NewClientVC" bundle:nil];
    [self.view addSubview:vc.view];
    vc.view.center = self.view.center;
}

Как вы можете видеть, я реализовал UIView в качестве прозрачного фона. В основном AddClientVC -> Прозрачный фон -> NewClientVC. Теперь я создал еще одну кнопку IBAction, но на этот раз внутри NewClientVC, как функцию, которая закрывает доступное подпредставление, которое выглядит так:

- (IBAction)saveDismiss:(id)sender
{
    [self.view removeFromSuperview];
}

Проблема, с которой я сталкиваюсь сейчас, заключается в том, что когда я нажимаю кнопку saveDismiss, она удаляет только подпредставление, которое я вызывала ранее в AddClientVC, но не удаляет прозрачный фон, который я создал как UIView. Так что проблема в том, как мне реализовать действие, которое одновременно удаляет мое подпредставление и прозрачный фон UIView, который я создал.

Мне нужна вся помощь, которую я могу получить:)

Ответы [ 3 ]

0 голосов
/ 06 января 2012

Я рекомендую не управлять вашими экранами, добавляя подпредставления вручную, а вместо этого использовать метод

- (void)presentModalViewController: (UIViewController *)modalViewController
                          animated: (BOOL)animated

в вашем корневом viewController.Или лучше создать экземпляр UINavigationController и использовать методы push и pop для детализации / просмотра ваших представлений. См. Ссылку на яблоко здесь

0 голосов
/ 14 августа 2012

Не беспокойтесь о скорости выполнения кода и будьте уверены в Apple SDK.UIKit оптимизирован для лучшего пользовательского опыта.Попытка улучшить ваш код с помощью ненадлежащего использования SDK, на мой взгляд, является рискованной стратегией.;) - Винсент Згеб

Извините, Винсент, но я не согласен с вами.Я достиг этого, потому что хочу реализовать жест, который добавляет для моего представления подвид, который будет навигацией моего приложения.

[self.view addSubview:ctrl.view]; 

быстрее представляет представление, чем

[self.navigationController presentModalViewController:ctrl animated:NO]

и, кстати, решение темы в моем случае было:

[self.view sendSubviewToBack:ctrl.view];
0 голосов
/ 06 января 2012

Я не слишком уверен, что полностью понимаю, чего вы хотите, но, может быть, вы могли бы попробовать что-то подобное?

- (IBAction)saveDismiss:(id)sender
{
    [vc removeFromSuperView];
    [self.view removeFromSuperview];
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...