0

我正在尝试在弹出框内显示视图。我做过很多次的事情。但是,由于某种原因,这次弹出窗口出现了,但缺少一些(但不是全部)子视图。

更具体地说,这个视图包含一个标签、一个文本字段、一个按钮,并且顶部还有一个导航栏。显示时,它显示一个标签,但不显示文本字段或按钮。我试过有没有XIB,结果是一样的。

这是弹出框的声明..(单击按钮时触发)

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];

没什么太复杂的,但是标签是唯一实际显示在屏幕上的东西。

4

1 回答 1

0

我找到了解决方案。

似乎 Popovers AutoResize 他们的组件,并且按钮和文本字段的宽度不够大。本质上,弹出窗口比覆盖整个窗口的普通视图小,所以当我猜弹出窗口正在调整视图时,它一直在将 textField 和按钮的宽度缩小到 0。

所以基本上,我不得不增加这些子视图的宽度来补偿。

于 2013-04-01T15:44:41.157 回答