我继承了一个遗留应用程序,并负责为iOS 11更新它.在一个视图中,用户可以单击一个名称并将该用户添加到他们的联系人.但是,当转到iOS 11中的"添加联系人"视图时,导航和状态栏显示为白色.它在iOS 10及更低版本上运行良好.
这是一个比较iOS 10(左)和iOS 11(右)的屏幕截图:
ABRecordRef person = ABPersonCreate();
//...
ABNewPersonViewController *newPersonViewController = [[ABNewPersonViewController alloc] init];
[newPersonViewController setDisplayedPerson:person];
newPersonViewController.newPersonViewDelegate = self;
UINavigationController *newNavigationController = [[UINavigationController alloc] initWithRootViewController:newPersonViewController];
[self presentViewController:newNavigationController animated:YES completion:nil];
CFRelease(person);
Run Code Online (Sandbox Code Playgroud)
我根据在网上发现的内容尝试了一些不同的东西:
任何意见将是有益的.
编辑:导航栏颜色在didFinishLaunchingWithOptions方法的AppDelegate中设置,如下所示.我尝试删除在此处设置的所有自定义逻辑.这有点修复了导航栏,但状态栏仍然是白色的白色文本.
-(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// Override point for customization after application launch.
if ([MPUtils isIOS7OrHigher]) {
[[UIToolbar appearance] setBarTintColor:[MPColors colorWithColorString:MPColorString0A3B77]];
[[UINavigationBar appearance] setBarTintColor:[MPColors colorWithColorString:MPColorString0A3B77]];
//color of text on buttons:
[[UINavigationBar appearance] setTintColor:[UIColor whiteColor]];
[[UINavigationBar appearance] setTitleTextAttributes:@{UITextAttributeTextColor …Run Code Online (Sandbox Code Playgroud) 我几个小时以来一直在努力.我的gulpfile中有以下内容:
gulp.task('styles', function() {
gulp.src('C:\\TeamCity\\buildAgent\\work\\5003e8de5901599\\dev\\Content\\css\\less\\dealer-landing.less')
.pipe(less())
.pipe(gulp.dest('C:\\TeamCity\\buildAgent\\work\\5003e8de5901599\\dev\\Content\\css'));
});
Run Code Online (Sandbox Code Playgroud)
我运行'gulp styles'完成没有错误,但从未创建.css.我试着简单地评论中间线,如下所示,并按预期工作; 较少的文件被复制到dest目录:
gulp.task('styles', function() {
gulp.src('C:\\TeamCity\\buildAgent\\work\\5003e8de5901599\\dev\\Content\\css\\less\\dealer-landing.less')
//.pipe(less())
.pipe(gulp.dest('C:\\TeamCity\\buildAgent\\work\\5003e8de5901599\\dev\\Content\\css'));
});
Run Code Online (Sandbox Code Playgroud)
知道为什么gulp-less不会产生css?如果我使用更少,则正确生成文件.
我正在考虑将用户会话从应用程序级别移动到 Redis 实例。我相信我已经根据文档(http://docs.spring.io/spring-session/docs/current/reference/html5/#httpsession)正确设置了所有内容,但我没有看到我的行为期待并认为我在某处错过了一步。
该应用程序当前使用 HttpSession,因此我只是将以下内容添加到上下文中:
<context:annotation-config/>
<util:constant static-field="org.springframework.session.data.redis.config.ConfigureRedisAction.NO_OP"/>
<beans:bean class="org.springframework.session.data.redis.config.annotation.web.http.RedisHttpSessionConfiguration"/>
<beans:bean id="jedisConnectionFactory" class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory" p:host-name="HOSTNAME" p:port="6379" />
Run Code Online (Sandbox Code Playgroud)
在 web.xml 中添加了以下内容:
<filter>
<filter-name>springSessionRepositoryFilter</filter-name>
<filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
</filter>
<filter-mapping>
<filter-name>springSessionRepositoryFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
Run Code Online (Sandbox Code Playgroud)
应用程序构建、部署和加载页面很好,但是当我查看页面上的 cookie 时,我同时拥有 JSESSIONID 和 SESSION。我知道 JSESSIONID 是 Spring Security 使用的,看起来 SESSION 是 Spring Session 使用的。当我查看 redis 时,看起来 SESSION 是存储的那个。
另一个问题是自定义会话对象(使用 session.setAttribute 添加)没有显示在会话中。会话中唯一显示的是登录后,并且是 SPRING_SECURITY_CONTEXT 对象。当我删除 Spring Session 过滤器时,这些对象被添加到会话中就好了。
这是正常行为,还是我的设置有一些奇怪的冲突?