我试图在一个弹出窗口中显示一个视图。我做过很多次的事。但是,由于某种原因,这次出现了popover,但却遗漏了一些(但不是全部)子视图。
更具体地说,此视图包含标签,文本字段,按钮,顶部还有一个导航栏。显示时,它显示标签,但不显示文本字段或按钮。我曾尝试使用和不使用XIB,结果是一样的。
这是popover的声明..(点击按钮时触发)
if (popover)
{
[popover dismissPopoverAnimated:NO];
popover = nil;
}
// create the settings view controller and display it in a popover
LoginViewController *loginViewController = [[LoginViewController alloc] init];
UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:loginViewController];
// Initialize the popover, set the parent view as the delegate and allocate the popover's origin on the screen
popover = [[UIPopoverController alloc] initWithContentViewController:nav];
popover.delegate = self;
[popover presentPopoverFromRect:button.frame inView:button.superview permittedArrowDirections:UIPopoverArrowDirectionDown animated:YES];
并在视图中加载了我有的loginViewController
self.navigationItem.title = NSLocalizedString(@"POPOVER_TITLE_INFORMATION", nil);
// setup navigation buttons
UIBarButtonItem *cancelButton = [[UIBarButtonItem alloc] initWithTitle:NSLocalizedString(@"BUTTON_TITLE_CANCEL", nil) style:UIBarButtonItemStyleBordered target:self action:@selector(cancel)];
UIBarButtonItem *searchButton = [[UIBarButtonItem alloc] initWithTitle:NSLocalizedString(@"BUTTON_TITLE_SEARCH", nil) style:UIBarButtonItemStyleDone target:self action:@selector(search)];
self.navigationItem.rightBarButtonItem = searchButton;
self.navigationItem.leftBarButtonItem = cancelButton;
[_loginTextLabel setText:NSLocalizedString(@"DESCRIPTION_TEXT", nil)];
[_loginTextLabel setNumberOfLines:0];
_loginTextLabel.frame = CGRectMake(20, 30, 728, 40);
[self.view addSubview:_loginTextLabel];
_loginTextField.frame = CGRectMake(20, 80, 264, 30);
[self.view addSubview:_loginTextField];
[_loginSubmitButton setTitle:NSLocalizedString(@"BUTTON_TITLE_SUBMIT", nil) forState:UIControlStateNormal];
[_loginSubmitButton addTarget:self action:@selector(submitBtnClk:) forControlEvents:UIControlEventTouchUpInside];
[_loginSubmitButton setFrame:CGRectMake(20, 130, 208, 44)];
[self.view addSubview:_loginSubmitButton];
没有什么比这更复杂了,但标签是实际显示在屏幕上的唯一内容。
答案 0 :(得分:0)
我找到了解决方案。
看起来Popovers AutoResize他们的组件,按钮和文本字段的宽度不够大。本质上,弹出窗口小于覆盖整个窗口的普通视图,因此当我猜弹出窗口正在调整视图时,它将textField和按钮的宽度一直缩小到0。
所以基本上,我不得不抬高那些子视图的宽度来补偿。