Tag: uinavigationcontroller

你如何在UIBarItem中使用setTitleTextAttributes:forState?

你如何使用setTitleTextAttributes:forState:在iOS中的UIBarItem ? 你如何设置NSDictionary ? 不能让它工作,文件不是很清楚。 从文档: setTitleTextAttributes:forState: 为给定的控制状态设置标题的文本属性: – (void)setTitleTextAttributes:(NSDictionary *)attributes forState:(UIControlState)state 参数: attributes(属性):包含文本属性的键值对的字典。 您可以使用NSString UIKit Additions Reference中列出的键来指定字体,文字颜色,文字阴影颜色和文字阴影偏移量。 状态:要为其设置标题文本属性的控件状态。

如何从导航控制器一次popup两个视图?

我想popup到导航堆栈上的第三个视图,回到第一个视图。 我知道如何一次popup一个视图: [self.navigationController popViewControllerAnimated:YES]; 但我怎么一次做两个? 谢谢…

延迟使用instantiateViewControllerWithIdentifier但不执行SegueWithIdentifier?

下面的代码用于将另一个视图控制器推到导航堆栈上。 当使用instantiateViewControllerWithIdentifier ,segue在第一次(〜3秒)明显缓慢,但是在随后的每一次都会相当快地发生。 其他SOpostbuild议确保代码完成的主线程上发生,但这并没有解决问题。 但是,使用performSegueWithIdentifier不会造成延迟。 SendViewController的viewDidLoad代码对于第一次和后续的推送是相同的。 尝试删除viewDidLoad目标视图控制器,但仍存在instantiateViewControllerWithIdentifier滞后,但不执行performSegueWithIdentifier 。 如何解决与instantiateViewControllerWithIdentifier延迟? 没有延迟: @IBAction func buttonTapped(sender: UIButton) { performSegueWithIdentifier(SendSegue, sender: self) } 第一次显示SendViewController时导致延迟: @IBAction func buttonTapped(sender: UIButton) { dispatch_async(dispatch_get_main_queue()) { let vc = self.storyboard!.instantiateViewControllerWithIdentifier(self.SendViewControllerID) as! SendViewController self.navigationController!.pushViewController(vc, animated: true) } }

为栏button项目设置图像和标题?

我目前有一个自定义的导航控制器与栏button项目,只是文本button。 是否可以保留酒吧button项目的标题,但也可以将其设置为图像(图标图像+下面的标题)。 class NavigationController: UINavigationController { var mode: NavigationMode = .Swipe { didSet { self.setButtonAttributes() } } private var leftBarButton: UIBarButtonItem! private var middleBarButton: UIBarButtonItem! private var rightBarButton: UIBarButtonItem! private var rightBarButton2: UIBarButtonItem! override func viewDidLoad() { super.viewDidLoad() } func configureNavigationItem(navigationItem: UINavigationItem) { //Configure the bar buttons text and actions if (self.leftBarButton == nil) { […]

更改animation转换

我有一个与NavigationController的应用程序。 我如何更改pushViewController和popToViewControlleranimation过渡样式? UPD 我创build类似@lawicko的答案。 但是当我试图调用函数的时候出错了 [self.navigationController pushViewController:放置withCustomTransition:CustomViewAnimationTransitionPush子types:CustomViewAnimationSubtypeFromLeft]; 错误是:“使用未声明的标识符'CustomViewAnimationTransitionPush'” 我应该在哪里申报这部分: typedef enum { CustomViewAnimationTransitionNone, CustomViewAnimationTransitionFlipFromLeft, CustomViewAnimationTransitionFlipFromRight, CustomViewAnimationTransitionCurlUp, CustomViewAnimationTransitionCurlDown, CustomViewAnimationTransitionFadeIn, CustomViewAnimationTransitionMoveIn, CustomViewAnimationTransitionPush, CustomViewAnimationTransitionReveal } CustomViewAnimationTransition; 现在写我宣布它在UINavigationController+Additions.h UPD 2:另外一个新的错误: Undefined symbols for architecture i386: "_OBJC_CLASS_$_CATransition", referenced from: objc-class-ref in UINavigationController+Additions.o "_kCATransition", referenced from: 和所有的_kCATransitions相同的错误

不支持导航控制器

在我的MainStoryBoard我想推一个viewController到detailView,但我得到这个错误: NSInvalidArgumentException“,原因是:”不支持导航控制器“ 我在storyboard上为viewController设置了标识符'JSA'ID。 – (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { if (indexPath.row == 0) { SWSJSAViewController *viewController = [[UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil] instantiateViewControllerWithIdentifier:@"JSA"]; [self.navigationController pushViewController:viewController animated:YES]; } }

垂直alignmentUINavigationItems

我已经将UINavigationBar的高度自定义为100px,并且希望将button添加到此自定义栏上。 除了button似乎要坐在导航栏的底部,无论如何,一切都很好。 我不能让它alignment中心或导航栏的顶部。 这是代码; 首先我在应用程序委托中创build一个导航控制器,并在右侧添加一个button。 // set main navigation controller temp *tempc = [[temp alloc] initWithNibName:@"temp" bundle:nil]; self.navigationController = [[UINavigationController alloc] initWithRootViewController:tempc]; UIBarButtonItem *navItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAdd target:nil action:nil]; [tempc.navigationItem setRightBarButtonItem:navItem]; [self.window addSubview:self.navigationController.view]; [self.window makeKeyAndVisible]; 然后我调整“温度”视图控制器中的导航栏像这样: – (void)viewDidAppear:(BOOL)animated { [super viewDidAppear:animated]; CGRect frame = CGRectMake(0.0f, 0.0f, 320.0f, 100.0f); [self.navigationController.navigationBar setFrame:frame]; [self.navigationController.navigationBar setAutoresizingMask:UIViewAutoresizingFlexibleBottomMargin]; } 我也尝试添加一个自定义视图到右边的ButtonButtonItem,但我无法得到添加的自定义视图完全触摸顶部。 […]

使用segues将UIViewControllerembedded到NavigationController中

我有一个viewController是通常 (最经常)通过使用push segue访问。 这个viewController需要被embedded到一个UINavigationController中。 所以通常情况下,这是没有问题的。 push seguepipe理viewController,因此viewController拥有它的UINavigationController。 我的问题是,在less数情况下,我想使用模态segue呈现相同的确切的viewController。 当我这样做的时候,viewController没有embedded到navigationController中。 有没有办法使用segues来做到这一点? 我知道这可以通过创build一个UINavigationController,将rootView设置为viewController,然后以模态方式呈现,完全在没有segues的代码中完成。 这可以使用这样的代码来完成: MyViewController *viewController = [[MyViewController alloc] init]; UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:viewController]; [self presentModalViewController:navController animated:YES]; 但是,我怎样才能做到这一点,但使用Segues? 更新 为了进一步的清晰,这里有一些代码来补充我在prepareForSegue方法中如何使用接受的答案。 当使用模态塞格 – (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { if ([[segue destinationViewController] isEqualToString:@"Modal to MyVC"]) { UINavigationController *nav = [segue destinationViewController]; MyViewController *vc = [nav topViewController]; //setup vc […]

单击UIWebView中的链接将推入NavigationView堆栈

基本上,我想知道如何拦截在Web视图中的点击,然后popup一个新的视图,顶部有一个导航栏(后退button),内容是我点击的链接。 我目前有一个带有5个选项卡的标签栏模板,每个选项卡当前设置为NavigationView,每个选项卡内部都是包含UIWebView的视图。 这是我如何处理链接: -(BOOL)webView:(UIWebView*)webView shouldStartLoadWithRequest:(NSURLRequest*)request navigationType:(UIWebViewNavigationType)navigationType { NSURL *url = request.URL; NSString *urlString = url.absoluteString; NSRange page = [ urlString rangeOfString: @"/?page=" ]; // URL is main page if ( [ urlString isEqualToString: @"http://somelink-yadayadayada.com/" ] ) { return YES; } // URL contains page number else if ( page.location != NSNotFound ) { return YES; […]

我如何使用UISearchController在UISearchBar在我的导航栏,并具有范围button的iOS 8?

我试图从iOS 8使用新的UISearchController ,并将其UISearchBarembedded到我的UINavigationBar 。 这很容易完成,如下所示: searchController = UISearchController(searchResultsController: nil) searchController.searchResultsUpdater = self searchController.delegate = self searchController.searchBar.delegate = self searchController.dimsBackgroundDuringPresentation = false searchController.hidesNavigationBarDuringPresentation = false navigationItem.titleView = searchController.searchBar 但是当我添加范围button: searchController.searchBar.showsScopeBar = true searchController.searchBar.scopeButtonTitles = ["Posts, Users, Subreddits"] 它添加了UISearchBar后面的button,显然看起来很奇怪。 我应该怎么做?