ScreenShot我是iOS新手。我正在使用swift 2和xcode 7.我正在使用splitViewController在iphone上试用一个应用程序。我有MasterView和DetailView的navigationControllers。
我面临的确切问题是: 如果我将后退栏按钮项更改为DetailView中的图像,则其默认属性不起作用。它不会返回到masterview(RootViewController)。但我需要有一个后退按钮的图像。我通过引用stackOverflow和其他几个站点尝试了很多东西。
popToRootViewController和popToViewController无法使用,因为我有2个不同的navigationController用于master和detailview。现在,我希望当我在DetailView中单击backBarButton Image时,它应该返回到masterView。
但我无法做到!请给我一些建议。
提前谢谢。
答案 0 :(得分:0)
如果您将其放入AppDelegate didFinishLaunchingWithOptions
,您可以轻松更改所有位置的默认后退按钮:
//Back Image On Whole App
let backImage = UIImage(named: "BackIcon")!.imageWithRenderingMode(.AlwaysOriginal)
UINavigationBar.appearance().backIndicatorTransitionMaskImage = backImage
UINavigationBar.appearance().backIndicatorImage = backImage
更改' BackIcon'到图像资源中的图像名称。请注意,您必须设置过渡蒙版和渲染模式(如上所示)才能正确更改图像。
更新:对于只有一个后退按钮,你可以使用类似的方法,将它添加到viewDidLoad上推送的屏幕(在你看到后退按钮 - 例如masterViewController之前)或你要推送detailVC的地方(所以你可以找出它要推进的屏幕,只改变你想要的屏幕:
override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
if indexPath.row == 1 {
//Back Image On The Pushed-to Screen, only on tapped index 1
let backImage = UIImage(named: "BackIcon")!.imageWithRenderingMode(.AlwaysOriginal)
self.navigationController.navigationBar.backIndicatorTransitionMaskImage = backImage
self.navigationController.navigationBar.backIndicatorImage = backImage
self.navigationItem.backBarButtonItem = UIBarButtonItem(title: "", style: .Plain, target: nil, action: nil) //To Remove The Title
self.performSegueWithIdentifier("showDetails", sender: self)
}
}