我试图用来UIPopoverPresentationController显示一个popover不占用整个屏幕的东西.我跟着许多不同的教程没有运气.
这是我的代码.它正确地实例化了ViewController它,但它占据了整个屏幕而不是我定义的更小的屏幕preferredContentSize.
func showPopover() {
let vc = self.storyboard?.instantiateViewControllerWithIdentifier("PopupTimePickerViewController") as PopupTimePickerViewController
vc.modalPresentationStyle = .Popover
vc.preferredContentSize = CGSizeMake(200, 100)
if let presentationController = vc.popoverPresentationController {
presentationController.delegate = self
presentationController.permittedArrowDirections = .Up
presentationController.sourceView = self.view
presentationController.sourceRect = CGRectMake(0, 0, 50, 50)
self.presentViewController(vc, animated: true, completion: nil)
}
}
Run Code Online (Sandbox Code Playgroud)
以正确答案更新9/27/16
func adaptivePresentationStyle(for controller: UIPresentationController, traitCollection: UITraitCollection) -> UIModalPresentationStyle {
return .none
}
Run Code Online (Sandbox Code Playgroud) 引导弹出窗口没有显示我的页面
这是我的HTML:
<button type="button" class="btn btn-lg btn-danger"
data-toggle="popover" title="Popover title"
data-content="And here's some amazing content. It's very engaging. Right?">
Click to toggle popover
</button>
Run Code Online (Sandbox Code Playgroud)
以下是我添加的所有js和css文件:
@Styles.Render("~/Content/css")
@Styles.Render("~/Content/bootstrap.min.css")
@Styles.Render("~/Content/bootstrap.css")
@Styles.Render("~/Content/bootstrap-theme.css")
@Styles.Render("~/Content/css/default.css")
@Scripts.Render("~/Scripts/jquery-2.1.1.js")
@Scripts.Render("~/Scripts/jquery.unobtrusive-ajax.js")
@Scripts.Render("~/bundles/modernizr")
@Scripts.Render("~/Scripts/bootstrap.js")
Run Code Online (Sandbox Code Playgroud)
谁能告诉我问题出在哪里?
PS:有没有办法让popover工作而不必编写任何脚本代码?
javascript jquery popover twitter-bootstrap twitter-bootstrap-3
有一种简单的方法可以在swift中实现颜色选择器弹出窗口吗?我是否可以为此目的利用任何内置库或UI元素?我看到一些用objective-c写的颜色选择器,但它们已经好几年了,我想知道是否有更新的东西.
我总是尝试以这种方式从tableView中的单元格呈现一个popover:
[myPopover presentPopoverFromRect:cell.frame inView:self.tableView permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];
Run Code Online (Sandbox Code Playgroud)
但是我不能使用UIPopoverArrowDirectionRight或Left,因为根据ipad(纵向或横向)的位置,popover会出现在其他地方.
我是以正确的方式呈现弹出窗口吗?
PS:表视图位于splitView的detailView中.
我正在尝试这个:
$("a[rel=popover]").popover({
html: true,
trigger: 'hover',
content: '<img src="'+$(this).data('img')+'" />'
});
Run Code Online (Sandbox Code Playgroud)
但它不起作用,因为$(this).data('img')不起作用.
为什么我这样做,我在数据内容属性中与模板和html发生冲突.所以我将图像源放在data-img attribue中,并且喜欢把它放到img元素中.
我试过这个,但不完全有效:
$("a[rel=popover_img]").popover({
html: true,
trigger: 'hover',
content: '<img src="#" id="popover_img" />'
}).hover(function(){
$('#popover_img').attr('src',$(this).data('img'));
});
Run Code Online (Sandbox Code Playgroud)
我希望有人可以帮助我:)
我正在尝试UIPopoverPresentationController在我的iPhone应用程序中实现新功能(使用Objective C).我想要的是一个简单的popover,其中包含一个从启动按钮发出的tableview.
- 编辑 -
这是我的修订代码,改编自文档中的研究,SO,以及下面评论中的输入:
- (IBAction)selectCategoryBtn:(UIButton *)sender
{
[self performSegueWithIdentifier:@"CatSelectSegue" sender:self.selCatButton];
}
-(void) prepareForSegue:(UIStoryboardSegue *) segue Sender:(id) sender
{
if (sender == self.selCatButton)
{
if ([segue.identifier isEqualToString:@"CatSelectSegue"])
{
UIPopoverPresentationController *controller = segue.destinationViewController;
controller.delegate = self;
controller.sourceView = self.selCatButton;
controller.sourceRect = self.selCatButton.frame;
}
}
}
-(UIModalPresentationStyle)adaptivePresentationStyleForPresentationController:(UIPresentationController *)controller
{
return UIModalPresentationNone;
Run Code Online (Sandbox Code Playgroud)
这是我的故事板连接:

然而,这只是以模态方式呈现一个桌面视图,从底部上升并消耗整个屏幕.
我用谷歌搜索了,看起来都是如此,但看起来我并不是唯一一个被我希望解决iPhone烦恼问题所迷惑的人.
任何人都可以看到我的代码中的故障或指导我一个明确的教程?我看过了,但也许API是如此新的没有人能够掌握它.
谢谢!
第二次编辑:
以下是上述代码的结果.我减少了视图控制器中的tableview的大小,我希望将其作为弹出窗口呈现.我把背景涂成灰色,只是为了澄清出现的是什么,而不是弹出窗口.

我正在尝试使用以下代码创建一个弹出菜单:
import UIKit
class BeobachtungViewController: UIViewController, UIPopoverPresentationControllerDelegate {
@IBAction func addClicked(_ sender: AnyObject) {
// get a reference to the view controller for the popover
let popController = UIStoryboard(name: "Personenakte", bundle: nil).instantiateViewController(withIdentifier: "popoverId")
// set the presentation style
popController.modalPresentationStyle = UIModalPresentationStyle.popover
// set up the popover presentation controller
popController.popoverPresentationController?.permittedArrowDirections = UIPopoverArrowDirection.up
popController.popoverPresentationController?.delegate = self
popController.popoverPresentationController?.sourceView = sender as! UIView // button
popController.popoverPresentationController?.sourceRect = sender.bounds
// present the popover
self.present(popController, animated: true, completion: nil)
}
// UIPopoverPresentationControllerDelegate method
func adaptivePresentationStyleForPresentationController(controller: UIPresentationController) …Run Code Online (Sandbox Code Playgroud) 我包括tooltip.js和popover.js.
当我的标记看起来像这样:
<button class="popover-dismiss" data-toggle="popover" title="sheen"
data-content="<a href="sheen60">60</a>, <a href="sheen80">80</a>">
PDS
</button>
Run Code Online (Sandbox Code Playgroud)
用JS
$('.popover-dismiss').popover({
trigger: 'focus',
html: 'true'
})
Run Code Online (Sandbox Code Playgroud)
一切正常.然而,当我改变我button的时候a,它会中断.控制台中没有错误.它只是不给弹出窗口.
<a href="javascript://" class="popover-dismiss" data-toggle="popover" title="sheen"
data-content="<a href="sheen60">60</a>, <a href="sheen80">80</a>">
PDS
</a>
Run Code Online (Sandbox Code Playgroud)
完全相同的属性.只是一个锚而不是一个按钮.我也试过使用跨度,但似乎也没有用.
我正popoverPresentationController用来展示我的popover.UITableViewController用于显示为popover 的用于以编程方式创建,通常包含1到5行.如何设置此弹出窗口以调整tableview内容的大小?
我的popover代码:
if recognizer.state == .Began {
let translation = recognizer.locationInView(view)
// Create popoverViewController
var popoverViewController = UITableViewController()
popoverViewController.modalPresentationStyle = UIModalPresentationStyle.Popover
popoverViewController.tableView.backgroundColor = UIColor.popupColor()
// Settings for the popover
let popover = popoverViewController.popoverPresentationController!
popover.delegate = self
popover.sourceView = self.view
popover.sourceRect = CGRect(x: translation.x, y: translation.y, width: 0, height: 0)
popover.backgroundColor = UIColor.popupColor()
presentViewController(popoverViewController, animated: true, completion: nil)
}
Run Code Online (Sandbox Code Playgroud) popover ×10
ios ×4
iphone ×3
objective-c ×3
swift ×3
ipad ×2
javascript ×2
color-picker ×1
jquery ×1
resize ×1
swift3 ×1
uipopover ×1
uitableview ×1