Я пытаюсь создать приложение с функцией, подобной темпам чата facebook.Создание глобального UIView
Когда пользователь переходит на определенную страницу (InCallViewController), они могут подключаться к другому человеку через видеочат. Когда они перейдут с этой страницы после подключения, я бы хотел, чтобы видеоизображение оставалось плавающим на экране, но позволяло им делать то, что они хотят делать в приложении.
Для этого я создал класс InCallViewController, который позволит пользователю подключиться к другому человеку. После подключения видео отображается в виде. Это представление является подвижным (подобно чатам для чата facebook) и отлично отображает видеочат, однако, когда я выхожу из страницы и перехожу на другую страницу (AccountViewController) в приложение, я не могу сохранить это представление на экране. Я пробовал много вещей, включая установку этого представления в качестве подзаголовка на последующих страницах. Однако, когда я это делаю, subview не отображается.
MyAccountView.m
- (void)viewDidLoad
{
[super viewDidLoad];
InCallViewController *inCallViewController = [[InCallViewController alloc] initWithNibName:@"InCallViewController" bundle:nil];
[self.view addSubview:inCallViewController.previewView];
[self.view bringSubviewToFront:inCallViewController.previewView];
(Do some other set up stuff)
}
InCallViewController.h
@interface InCallViewController : UIViewController <UIAlertViewDelegate>
{
CGPoint currentTouch;
NSArray *viewArray;
AVAudioPlayer *audioPlayer;
}
@property (weak, nonatomic) IBOutlet UIView *previewVideoView;
previewView является UIView в классе InCallViewController. Это подключено в IB и отлично работает, когда в классе InCallController. Проблема в том, что он не будет отображаться при добавлении его в качестве подвью в другом классе. Мне интересно, что я делаю неправильно, или если есть лучший способ оставить «previewView» оставшимся на экране после выхода из InCallViewController.
Благодаря
Не могли бы вы показать мне, как это сделать? Когда я попробовал "[[[UAppication sharedApplication] keyWindow] addSubview: _previewVideoView];" В результате получилось Исключение «NSGenericException», причина: «Невозможно установить ограничение на просмотр. Связано ли ограничение с чем-то извне поддерева представления? Это незаконно. Ограничение: view:
Похоже, у вас есть ограничение AutoLayout, определенное для предварительного просмотра, которое вызывает эту ошибку, поскольку ограничение должно применяться к родительскому представлению всех представлений, которые являются частью этого ограничения. Должно ли ограничение автоопределения нуждаться в предварительном просмотре? Если это так, вам придется добавить его в keyWindow или изменить свое ограничение, чтобы больше не ссылаться на previewView. –
Удивительный! Это сработало! Все, что мне нужно было сделать, это вынуть «автоспуск». знаете, если мне нужно будет поместить код для управления этим представлением (перемещать его) в appDelegate? Я не уверен, куда будет идти код для выполнения некоторых действий на этом представлении. –