在这篇文章中,我们将为您详细介绍objective-c–将ADBannerView放在UINavigationController之上的内容。此外,我们还会涉及一些关于DestinationViewC
在这篇文章中,我们将为您详细介绍objective-c – 将ADBannerView放在UINavigationController之上的内容。此外,我们还会涉及一些关于DestinationViewController Segue和UINavigationController迅速、ios – UIViewControllerAnimatedTransitioning UINavigationController push和pop、ios – 一个ContainerViewController内的UINavigationController popView的时髦、ios – 与具有两个UINavigationController的rootViewController共享相同的UIViewController的知识,以帮助您更全面地了解这个主题。
本文目录一览:- objective-c – 将ADBannerView放在UINavigationController之上
- DestinationViewController Segue和UINavigationController迅速
- ios – UIViewControllerAnimatedTransitioning UINavigationController push和pop
- ios – 一个ContainerViewController内的UINavigationController popView的时髦
- ios – 与具有两个UINavigationController的rootViewController共享相同的UIViewController
objective-c – 将ADBannerView放在UINavigationController之上
无论用户如何弹出和推送视图,我都希望在其底部放置一个ADBanner,以便始终可见.
我在苹果示例代码中研究了iAdSuite示例,但是,虽然它是在“最佳实践”中报告的,但我认为这不是我需要的最佳实践.它基本上在app delegate类中声明了一个ADBannerView,然后为应用程序所需的每个视图实现ADBannerViewDelegate方法.这意味着在您需要的每个视图控制器类上反复实现ADBannerViewDelegate方法!它似乎不太聪明……
总结
以上是小编为你收集整理的objective-c – 将ADBannerView放在UINavigationController之上全部内容。
如果觉得小编网站内容还不错,欢迎将小编网站推荐给好友。
DestinationViewController Segue和UINavigationController迅速
所以我有这样的prepareForSegue方法:
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { if segue.identifier == "fromEventTableToAddEvent" { let addEventViewController: AddEventViewController = segue.destinationViewController as! AddEventViewController addEventViewController.newTagArray = newTagArray }}
但是,在运行时,应用程序崩溃并记录了以下消息:
无法转换类型为’UINavigationController’的值
出现错误是因为addEventController嵌入在导航控制器中,但是我不确定如何设置segue,以便将destinationViewController设置为NavigationController,但还允许我将prepareForSegue方法中的变量传递给addEventController。
那么我将如何使用Swift做到这一点?
非常感谢您的帮助和时间。它可以帮助很多
答案1
小编典典您只需要访问导航控制器的topViewController,它将是AddEventViewController。这是代码:
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { if segue.identifier == "fromEventTableToAddEvent" { let nav = segue.destinationViewController as! UINavigationController let addEventViewController = nav.topViewController as! AddEventViewController addEventViewController.newTagArray = newTagArray }}
ios – UIViewControllerAnimatedTransitioning UINavigationController push和pop
问题是现在导航栏不再执行导航项的正常推送动画.现在,导航项目只是淡入淡出.我将导航项目滑入&像普通推出一样褪色和褪色.
有谁知道如何通过自定义转换连接导航栏推送和弹出动画?
解决方法
如果您收听WWDC会话218,您将听到提到的内容,并在第一个演示中看到它.
ios – 一个ContainerViewController内的UINavigationController popView的时髦
我试图在containerViewController中添加一个UINavigationController,它工作得很好.
我在故事板中创建了一个UINavigationController,其中连接了一堆UIViewControllers,所有这些都通过’push’segues挂钩和链接在一起.我从故事板中取出这个NavigationController,通过代码将它粘贴在我的ContainerViewController中.然后它显示了NavigationController应该在哪里,我可以单击按钮,推送动画只发生在ContainerViewController的NavigationController框架内.
但是,如果我从NavigationController上的代码调用popViewController,它将为整个ContainerViewController设置动画.我不想要它,我想它只为NavigationController设置动画.
有谁知道它为什么这样做?
当你在ContainerViewController里面有一个UINavigationController,然后你就可以在NavigationController上使用popViewController,你如何才能使它只动画UINavigationController,而不是它所在的整个ContainerViewController?
解决方法
- (void) switchToView:(Nsstring *)identifier { UIViewController *target = [self getorCreateViewController:identifier]; [self switchToViewController:target identifier:identifier]; } // If you need to interact with the VC before it is pushed break it into 2 step process - (UIViewController *) getorCreateViewController:(Nsstring *)identifier { NSArray *children = [self.viewControllers filteredArrayUsingPredicate:[nspredicate predicateWithFormat:@"restorationIdentifier == %@",identifier,nil]]; UIViewController *target = (children.count > 0 ? children[0] : [self.storyboard instantiateViewControllerWithIdentifier:identifier]); return target; } // For my use case,I always animate via push. Could modify this to pop/push as appropriate - (void) switchToViewController:(UIViewController *)target identifier:(Nsstring *)identifier { [self setViewControllers:[self.viewControllers filteredArrayUsingPredicate:[nspredicate predicateWithFormat:@"restorationIdentifier != %@",nil]] animated:NO]; [self pushViewController:target animated:YES]; }
有点Fugly解决方法我知道…希望我找到一个更好的答案(到这里寻找一个).
总结
以上是小编为你收集整理的ios – 一个ContainerViewController内的UINavigationController popView的时髦全部内容。
如果觉得小编网站内容还不错,欢迎将小编网站推荐给好友。
ios – 与具有两个UINavigationController的rootViewController共享相同的UIViewController
而不是直接使用相同的UIViewController,而是使用两个设置为rootViewController的vanilla UIViewController.在他们的loadView方法中,他们调用[storyboard instantiateViewControllerWithIdentifier:]来获取前一个UIViewController,并将其视图设置为控制器的视图.这可能是首选方法,因为我需要设置几个变量和代表.
我有一个UIStoryBoard与UITabBarController作为入口点与两个UINavigationControllers连接.每个共享一个共同的UIViewController作为其根视图控制器.当应用程序启动时,第一个UITabBarItem被选中,视图按预期方式加载.但是,当我选择第二个UITabBarItem时,相同的视图是不可见的.我看到带有黑色背景的UINavigationBar.我使用Storyboard界面做错了事情,还是需要通过每个UINavigationController的方法手动实例化UIViewController – 例如loadView?
解决方法
我看到你的解决方案的问题.像这样的解决方法让我有疑问,如果iOS中的当前故事板功能已准备好创建应用程序.我认为故事板有一个概念上的问题,苹果公司需要决定一个故事板上的一个viewController是否代表一个实例,或者它是否只代表该类,现在它不一致,因为您可以看到多个变量实际上可以指向相同的viewController,但实际上每个segue都有自己的实例,为什么还没有跟rootViewController连接?我不知道.
就像您的解决方案一样,请注意Apple的文档中的以下内容:
“重要视图控制器是其视图的唯一所有者及其创建的任何子视图,它负责创建这些视图,并在适当的时候放弃其所有权,包括在低内存条件下以及视图控制器本身被释放时如果您使用故事板或nib文件来存储视图对象,则视图控制器要求它们时,每个视图控制器对象会自动获取这些视图的自己的副本,但是如果手动创建视图,则不应使用具有多个视图控制器的相同视图对象“.
http://developer.apple.com/library/ios/#documentation/UIKit/Reference/UIViewController_Class/Reference/Reference.html
关于objective-c – 将ADBannerView放在UINavigationController之上的介绍现已完结,谢谢您的耐心阅读,如果想了解更多关于DestinationViewController Segue和UINavigationController迅速、ios – UIViewControllerAnimatedTransitioning UINavigationController push和pop、ios – 一个ContainerViewController内的UINavigationController popView的时髦、ios – 与具有两个UINavigationController的rootViewController共享相同的UIViewController的相关知识,请在本站寻找。
本文标签: