SWIFT 中的 NSUserDefaults - 介绍 ViewController
NSUserDefaults in SWIFT - Intro ViewController
我的应用程序有一个小问题,问题是我有一个介绍屏幕 - 这是一个应该向人们打招呼一次就不会再显示该屏幕的屏幕。问题是我似乎无法将应用程序打开一次 "remember"。我在底部做了一个按钮,我认为我可以将其用作保存按钮,但它不能正常工作。介绍屏幕始终是初始 viewcontroller。
所以我的问题是,有没有办法在按钮上使用 SWIFT 中的 NSUserDefaults,以便当用户单击它一次时。 introscreen 将不会再次打开。用户将被定向到下一个 viewcontroller。在我的例子中是一个表格视图。
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
@IBAction func NextViewcontroller(sender: AnyObject)
{
let startVC = self.viewControllerAtIndex(0) as ContentViewController
let viewControllers = NSArray(object: startVC)
self.pageViewController.setViewControllers(viewControllers as? [UIViewController], direction: .Forward, animated: true, completion: nil)
}
func viewControllerAtIndex(index: Int) -> ContentViewController
{
if ((self.pageTitles.count == 0) || (index >= self.pageTitles.count)) {
return ContentViewController()
}
let vc: ContentViewController = self.storyboard?.instantiateViewControllerWithIdentifier("ContentViewController") as! ContentViewController
vc.imageFile = self.pageImages[index] as! String
vc.titleText = self.pageTitles[index] as! String
vc.pageIndex = index
return vc
}
// MARK: - Page View Controller Data Source
func pageViewController(pageViewController: UIPageViewController, viewControllerBeforeViewController viewController: UIViewController) -> UIViewController?
{
let vc = viewController as! ContentViewController
var index = vc.pageIndex as Int
if (index == 0 || index == NSNotFound)
{
return nil
}
index--
return self.viewControllerAtIndex(index)
}
func pageViewController(pageViewController: UIPageViewController, viewControllerAfterViewController viewController: UIViewController) -> UIViewController? {
let vc = viewController as! ContentViewController
var index = vc.pageIndex as Int
if (index == NSNotFound)
{
return nil
}
index++
if (index == self.pageTitles.count)
{
return nil
}
return self.viewControllerAtIndex(index)
}
func presentationCountForPageViewController(pageViewController: UIPageViewController) -> Int
{
return self.pageTitles.count
}
func presentationIndexForPageViewController(pageViewController: UIPageViewController) -> Int
{
return 0
}
}
我在我的应用程序中实现了同样的事情
if let IsTermsVisible = NSUserDefaults.standardUserDefaults().objectForKey(PrefTermsAndCondition) as? Bool {
print ("BreakIsTermsVisible ")
if IsTermsVisible == true {
tncView.hidden = true
}
else {
tncView.hidden = false
}
}
else {
tncView.hidden = false
print ("false IsTermsVisible ")
}
我在视图中添加了一个确定按钮,一旦用户按下确定,它就永远不会显示在应用程序中。
@IBAction func tncBtnClicked(sender: AnyObject) {
NSUserDefaults.standardUserDefaults().setBool(true, forKey: PrefTermsAndCondition)
tncView.hidden = true
}
我的应用程序有一个小问题,问题是我有一个介绍屏幕 - 这是一个应该向人们打招呼一次就不会再显示该屏幕的屏幕。问题是我似乎无法将应用程序打开一次 "remember"。我在底部做了一个按钮,我认为我可以将其用作保存按钮,但它不能正常工作。介绍屏幕始终是初始 viewcontroller。
所以我的问题是,有没有办法在按钮上使用 SWIFT 中的 NSUserDefaults,以便当用户单击它一次时。 introscreen 将不会再次打开。用户将被定向到下一个 viewcontroller。在我的例子中是一个表格视图。
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
@IBAction func NextViewcontroller(sender: AnyObject)
{
let startVC = self.viewControllerAtIndex(0) as ContentViewController
let viewControllers = NSArray(object: startVC)
self.pageViewController.setViewControllers(viewControllers as? [UIViewController], direction: .Forward, animated: true, completion: nil)
}
func viewControllerAtIndex(index: Int) -> ContentViewController
{
if ((self.pageTitles.count == 0) || (index >= self.pageTitles.count)) {
return ContentViewController()
}
let vc: ContentViewController = self.storyboard?.instantiateViewControllerWithIdentifier("ContentViewController") as! ContentViewController
vc.imageFile = self.pageImages[index] as! String
vc.titleText = self.pageTitles[index] as! String
vc.pageIndex = index
return vc
}
// MARK: - Page View Controller Data Source
func pageViewController(pageViewController: UIPageViewController, viewControllerBeforeViewController viewController: UIViewController) -> UIViewController?
{
let vc = viewController as! ContentViewController
var index = vc.pageIndex as Int
if (index == 0 || index == NSNotFound)
{
return nil
}
index--
return self.viewControllerAtIndex(index)
}
func pageViewController(pageViewController: UIPageViewController, viewControllerAfterViewController viewController: UIViewController) -> UIViewController? {
let vc = viewController as! ContentViewController
var index = vc.pageIndex as Int
if (index == NSNotFound)
{
return nil
}
index++
if (index == self.pageTitles.count)
{
return nil
}
return self.viewControllerAtIndex(index)
}
func presentationCountForPageViewController(pageViewController: UIPageViewController) -> Int
{
return self.pageTitles.count
}
func presentationIndexForPageViewController(pageViewController: UIPageViewController) -> Int
{
return 0
}
}
我在我的应用程序中实现了同样的事情
if let IsTermsVisible = NSUserDefaults.standardUserDefaults().objectForKey(PrefTermsAndCondition) as? Bool {
print ("BreakIsTermsVisible ")
if IsTermsVisible == true {
tncView.hidden = true
}
else {
tncView.hidden = false
}
}
else {
tncView.hidden = false
print ("false IsTermsVisible ")
}
我在视图中添加了一个确定按钮,一旦用户按下确定,它就永远不会显示在应用程序中。
@IBAction func tncBtnClicked(sender: AnyObject) {
NSUserDefaults.standardUserDefaults().setBool(true, forKey: PrefTermsAndCondition)
tncView.hidden = true
}