[英]settings view controller not dismissing
我正在創建一個具有2個簡單視圖控制器的任務列表應用程序...我在第一個( HomeScreen )中嵌入了一個導航控制器,但是,當我點擊我的自定義后退按鈕時,下一個視圖控制器( 設置 )不會消失。 我是否必須將Home View Controller設置為根VC? 然后使用popToRootVIewController
方法? 我一直在使用dismissViewControllerAnimated
......
設置視圖控制器實現文件:
//
// AGSettingsViewController.m
// QuickList3
//
// Created by Alex Gartenberg on 4/11/14.
// Copyright (c) 2014 A.Gartenberg. All rights reserved.
//
#import "AGSettingsViewController.h"
@interface AGSettingsViewController ()
@property (weak, nonatomic) IBOutlet UILabel *backgroundTitleLabel;
@property (weak, nonatomic) IBOutlet UILabel *fontTitleLabel;
@property (weak, nonatomic) IBOutlet UILabel *settingsTitleLabel;
@property (nonatomic) BOOL fontColor;
@end
@implementation AGSettingsViewController
- (void)viewDidLoad
{
[super viewDidLoad];
//set title of view
self.settingsTitleLabel.text = @"SETTINGS";
// Determine background color
if (!BACKGROUND)
{
self.settingsBackgroundImage.image = [UIImage imageNamed:@"blue.png"];
}
else
{
// Retrieve image wrapped in NSData
NSData *imageData = [[NSUserDefaults standardUserDefaults] objectForKey:BACKGROUND];
// Unwrap the image from NSData
UIImage *savedBackground = [UIImage imageWithData:imageData];
// Set image as new background
self.settingsBackgroundImage.image = savedBackground;
}
}
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
#pragma mark - Back Button Method
- (IBAction)backButtonPressed:(UIButton *)sender
{
[self didSaveSettings];
NSLog(@"Back Button Pressed");
}
#pragma mark - NSUserDefaults Persistance
-(void)saveSettings
{
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
//Select current background
UIImage *savedBackground = self.settingsBackgroundImage.image;
//Wrap image in an NSData Object
NSData *imageData = UIImageJPEGRepresentation(savedBackground, 100);
//Save Data wrapped Image Object to NSUserDefaults
[defaults setObject:imageData forKey:BACKGROUND];
//Font Color Bool Saved
[defaults setBool:self.fontColor forKey:FONT_COLOR];
//Persist Data
[defaults synchronize];
}
#pragma mark - AGSettingsViewController Save and Dismiss
-(void)didSaveSettings
{
[self saveSettings];
[self dismissViewControllerAnimated:YES completion:nil];
}
@end
是的,你不應該使用dismissViewControllerAnimated:completion:
因為它只會影響父母以模態方式呈現的視圖控制器。 我同意該文件可以更明確地說明這一點,雖然這條線應該暗示這不起作用(強調我的):
最頂層的視圖使用其模態過渡樣式被忽略
因此,要從UINavigationController
的堆棧中刪除頂視圖控制器,必須使用
-(void)didSaveSettings
{
[self saveSettings];
[self.navigationController popViewControllerAnimated:YES];
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.