我想关闭我当前的视图控制器并转到下一页?
即关闭当前视图控制器并将另一个视图控制器推入堆栈。
我可以使用以下代码关闭当前页面
[[self navigationController] popViewControllerAnimated: YES];
Run Code Online (Sandbox Code Playgroud)
但是在这之后打开一个新的控制器是行不通的。
我的视图控制器在导航栏上显示了一个后退按钮(在 UINavigationController 中)。当前视图中有一个“编辑”模式。当进入“编辑”模式时,我将 leftBarButtonItem 替换为“取消”按钮,当退出“编辑”模式时,我想再次将左按钮更改为“后退按钮”,我该怎么做?
我尝试 self.navigationItem.leftBarButtonItem = self.navigationItem.backBarButtonItem,它只是删除了“取消”按钮,但没有取回“后退按钮”。
现在我可以像后退按钮一样使用UI创建一个新的导航项,并将其设置为leftBarButtonItem,但位置与原生后退栏按钮不同,并且失去了向后滑动手势。
有什么办法可以让原生的后退栏按钮项目回到导航栏上?
objective-c uinavigationbar uinavigationcontroller ios backbarbuttonitem
我有一个带有导航控制器的主细节故事板。主视图是一个 UITableView,它显示了使用 Core Data 保存的内容列表。当一行被点击时,它会转到一个 Detail 视图,该视图具有一个 UITextView,您可以在其中编辑数据。
当用户点击导航栏中的“返回”时,如何调用可用于自动保存更改的函数(或可用的现有函数)?
我在 iPhone / iOS 8 上展示了一个像这样的模态视图控制器:
UIApplication* application = [UIApplication sharedApplication];
UIWindow* window = application.windows[0];
UIViewController* rootViewController = window.rootViewController;
SomeViewController* someViewController;
UINavigationController* navigationController;
someViewController = [[SomeViewController alloc] init];
navigationController = [[UINavigationController alloc] initWithRootViewController:someViewController];
// Set everything to black.
navigationController.navigationBar.barTintColor = [UIColor blackColor];
navigationController.navigationBar.tintColor = [UIColor blackColor];
navigationController.navigationBar.barStyle = UIBarStyleBlack;
navigationController.modalTransitionStyle = UIModalTransitionStyleCoverVertical;
[rootViewController presentViewController:navigationController animated:YES completion:nil];
Run Code Online (Sandbox Code Playgroud)
SomeViewController 是一个空的/新鲜的视图控制器,什么也不做(除了尝试将导航栏设置为黑色,但没有成功)。
这是在使用故事板的应用程序中,并且将NVSlideMenuController作为窗口的根。
发生的情况是显示了视图控制器,但导航栏/似乎完全透明,因为当我将someViewController的背景颜色设置为红色时,整个屏幕都是红色的(标题除外)。应用程序的其余部分有一个透明的导航栏。
另一件可能相关的事情是,当应用程序进入后台(使用 iPhone 主页按钮)然后再次进入前台时,视图控制器不再可见。
我在这里错过了什么或做错了什么?
我有一个标签,我作为标题放在屏幕的顶部.当我通过嵌入导航控制器添加导航控制器时,我希望保持可见性并仍然存在.
我主要使用故事板来帮助我创建UI.
这是没有导航控制器的应用程序的样子:

但是,如果我添加导航控制器,我会得到以下内容:

当然,我想维护一个导航控制器,这样我就不必使用自己的控制导航的按钮.据我了解,目前市场徽标隐藏在导航控制器后面.
我正在尝试为弹出模块提供一个单独的URL,我正在使用一个按钮来重定向:
trigger={ <Link href="/exercisesadd">
<Button style={style} waves='light' > Add new</Button></Link>
}>
Run Code Online (Sandbox Code Playgroud)
但我收到404错误,即使我在反应路由器中有这条路线:
export default () => {
return <Route path="/"component={Container} auth={auth}>
<IndexRoute component={Home}/>
<Route path="/portfolio" onEnter={requireAuth} component={Portfolio} />
<Route path="/Login" component={Home} />
<Route path="/home" component={Home} />
<Route path="/edit" component={Edits}/>
<Route path="/exercises" component={Exercises}/>
<Route path="/exercisesadd" component={Exercises}/>
</Route>
};
Run Code Online (Sandbox Code Playgroud) 我有一个UINavigationItem,我将它的titleView设置为UIView,它嵌入了UILabel和UIImageView.我正在尝试向视图添加UITapGestureRecognizer,但它似乎不起作用.有解决方案吗 此外,将gestureRecognizer添加到整个navigationBar不是一个选项,因为我有一个rightBarButtonItem并想要使用后退按钮.
这是我的代码:
func configureTitleView() {
guard let profile = profile else {
// Pop navController
return
}
let titleView = UIView()
titleView.frame = CGRect(x: 0, y: 0, width: 100, height: 40)
let containerView = UIView()
containerView.translatesAutoresizingMaskIntoConstraints = false
titleView.addSubview(containerView)
let profileImageView = UIImageView()
profileImageView.translatesAutoresizingMaskIntoConstraints = false
profileImageView.contentMode = .scaleAspectFill
profileImageView.clipsToBounds = true
let imageURL = URL(string: profile!.firstProfilePicture!)
profileImageView.sd_setImage(with: imageURL)
containerView.addSubview(profileImageView)
profileImageView.leftAnchor.constraint(equalTo: containerView.leftAnchor).isActive = true
profileImageView.centerYAnchor.constraint(equalTo: containerView.centerYAnchor).isActive = true
profileImageView.widthAnchor.constraint(equalToConstant: 36).isActive = true
profileImageView.heightAnchor.constraint(equalToConstant: 36).isActive = true
profileImageView.layer.cornerRadius = 36 …Run Code Online (Sandbox Code Playgroud) 我有一个登录页面,如果登录成功,用户将被带到登陆viewController(VC).我有一个navigationController.我弹出登录VC并推入登陆VC.我遇到的问题是登录VC在堆栈中持续存在,如导航控制器上的左键所示,它会导航回登录页面.如何从堆栈中完全删除登录VC,以便导航控制器在用户登录后无法导航回用户?
self.navigationController?.popViewController(animated: true)
let landingPage = self.storyboard?.instantiateViewController(withIdentifier: "landingPage") as!
LandingViewController
self.navigationController?.pushViewController(landingPage, animated: true)
Run Code Online (Sandbox Code Playgroud) Swift 4,iOS 11.2.5 Xcode 9.2
尝试更改后退按钮的字体。找到了以前尝试过的解决方案,但是在我的配置(选项卡栏控制器内的导航控制器)下,似乎在Swift 4,iOS 11.2.5下都无法正常工作。
得到此代码后,第一行和最后一行有效,但中间的三行无效。
self.navigationController?.navigationBar.titleTextAttributes = [ NSAttributedStringKey.font: UIFont(name: "AvenirNextCondensed-DemiBoldItalic", size: 20)!]
navigationItem.backBarButtonItem?.setTitleTextAttributes([NSAttributedStringKey.font: UIFont(name: "AvenirNextCondensed-DemiBoldItalic", size: 20)!], for: .normal)
navigationItem.backBarButtonItem?.setTitleTextAttributes([NSAttributedStringKey.font: UIFont(name: "AvenirNextCondensed-DemiBoldItalic", size: 20)!], for: .highlighted)
navigationItem.backBarButtonItem?.setTitleTextAttributes([NSAttributedStringKey.font: UIFont(name: "AvenirNextCondensed-DemiBoldItalic", size: 20)!], for: .focused)
navigationItem.title = "Filter \(titleSelection!) [shake to clear]"
Run Code Online (Sandbox Code Playgroud)
这是viewDidLoad方法。应该行吗?
我正在使用swift项目,它使用Xcode 9和swift 4.1.我创建了一个导航视图控制器,然后创建了其他视图控制器并附加了导航视图控制器.
所以我默认有页眉和页脚.所以我有两个问题,
现在我想要更改除白色之外的页脚颜色,但是当我为其编写任何代码时,它会在页脚后面缩小,我看不到任何没有白色的颜色.我如何为页脚添加任何颜色?
如果我无法为页脚赋予颜色,那么我想使用波纹管代码隐藏该页脚
override func viewWillAppear(animated: Bool)
{
self.navigationController?.navigationBarHidden = true
}
Run Code Online (Sandbox Code Playgroud)但是通过这种颜色,我只能隐藏页眉而不是页脚.所以我如何使用代码隐藏页脚,所以我创建了自定义页脚我想要的.
如何在swift 4.1中解决上述问题?
ios ×9
swift ×4
objective-c ×2
cocoa-touch ×1
fonts ×1
footer ×1
hyperlink ×1
popup ×1
react-router ×1
reactjs ×1
swift4 ×1
xcode9 ×1