這可能是不可能的,但我希望有人會有一個想法如何做到這一點。創建按鈕彈出視圖錨在運行時
我有一個應用程序,我只從iPhone移植到Universal。在iPhone上,我使用的是選項卡式應用程序。我使用三個標籤來顯示普通數據。我有第四個選項卡,只有在滿足特定條件時纔會顯示。要添加標籤,我做的:
if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone)
{
UITabBarController *tabController = (UITabBarController *) self.rootViewController;
NSMutableArray* newArray = [NSMutableArray arrayWithArray: tabController.viewControllers];
[newArray addObject: [theStoryboard instantiateViewControllerWithIdentifier: @"AdditionalView-Phone"]];
[tabController setViewControllers:newArray animated:YES];
}
對於iPad的,我對最初的觀點足夠的空間來從iPhone UI的主要三個標籤顯示的一切。所以我需要的是一個額外的(小)視圖的「額外」數據。我想使用popOver視圖來完成它,所以我使用Utility App模板中的導航欄和彈出按鈕來設置初始視圖。但現在我卡住了。我無法弄清楚如何在運行時創建popover按鈕,並使其正確執行popOver視圖。我可以添加按鈕,像這樣:
UIBarButtonItem *flipButton = [[UIBarButtonItem alloc] initWithTitle: @"Modem" style: UIBarButtonItemStylePlain target: self action: @selector(togglePopover:)];
self.navBar.topItem.rightBarButtonItem = flipButton;
,但我得到一個異常:「NSInternalInconsistencyException」,原因:「UIStoryboardPopoverSegue必須從一個欄按鈕項或圖中呈現」我很確定這是因爲我沒有爲popOver segue設置錨點。故事板中不存在該按鈕,所以我無法將其設置在那裏。我似乎無法找到一個API來設置它在運行時。
我也嘗試在IB中創建按鈕,但不是在視圖層次結構中,然後將rightBarButtonItem屬性設置爲我現有的按鈕。這也行得通,但我仍然無法將該按鈕設置爲彈出視圖的錨點。我可以將導航欄設置爲定位點,但這使得它定位到導航欄中的標題,看起來很愚蠢。
任何想法?
嘿@Flyingdiver你找到了解決辦法嗎? – Rog
是的,製作一個隱藏的UIView,從中展示彈出窗口並移動到需要的地方。 –