这是我的情况:
我有一个UINavigationController内部UITabBarController.当我向下钻取导航控制器时,在某些时候我必须隐藏它,UITabBar因为我希望视图具有尽可能多的空间.
我通过self.hidesBottomBarWhenPushed = YES在推动内部使用来做到这一点UIViewController,并且它工作得很好.
但是,我想UITabBar在后面推出的控制器中显示后面的内容.我试图放入self.hidesBottomBarWhenPushed = NO其他控制器,但UITabBar不会回来.
文档说明似乎是正常的:
hidesBottomBarWhenPushed
If YES, the bar at the bottom of the screen is hidden; otherwise, NO. If YES, the bottom bar remains hidden until the view controller is popped from the stack.
实际上,当弹出具有此属性设置为yes的控制器时,tabbar会返回.
UITabBar一旦它被隐藏了,是否有任何正确的方法来显示控制器被推动的时间?
提前致谢
我有一些状态,我想在片段的生命周期中保存.例如,当屏幕旋转时,它工作正常,但是当从磁盘中杀死并恢复进程时(我认为它是如何工作的),我得到一个ClassCastException.这是一些代码:
初始化:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (savedInstanceState == null) {
playlistsMap = new LinkedHashMap<Section, List<Playlist>>();
} else {
playlistsMap = (LinkedHashMap<Section, List<Playlist>>) savedInstanceState.getSerializable(PLAYLISTS_MAP_KEY);
}
setHasOptionsMenu(true);
}
Run Code Online (Sandbox Code Playgroud)
保存数据:
@Override
public void onSaveInstanceState(Bundle outState) {
if (isEverySectionsLoaded()) {
outState.putSerializable(PLAYLISTS_MAP_KEY, playlistsMap);
} else {
outState.putSerializable(PLAYLISTS_MAP_KEY, new LinkedHashMap<Section, List<Playlist>>());
}
// ...
}
Run Code Online (Sandbox Code Playgroud)
我从演员阵容得到的例外onCreate:
04-10 01:06:43.430 E/AndroidRuntime(28549): FATAL EXCEPTION: main
04-10 01:06:43.430 E/AndroidRuntime(28549): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.mydomain.android/com.mydomain.android.ui.MainActivity}:
java.lang.ClassCastException: java.util.HashMap cannot be cast to java.util.LinkedHashMap
Run Code Online (Sandbox Code Playgroud)
我知道在Android上使用parcelables会更好,但我仍然不明白这是怎么回事.
有任何想法吗?
我正在玩带有babel和webpack的React(@ 13.3).
我有一个像这样定义的组件:
import BaseComponent from './BaseComponent';
export default class SomeComponent extends BaseComponent {
render() {
return (
<div>
<img src="http://placekitten.com/g/900/600"/>
</div>
);
}
}
Run Code Online (Sandbox Code Playgroud)
但是我收到以下错误:
未捕获的ReferenceError:未定义React
我理解错误:JSX位被编译到React.createElement(...)但React不在当前范围内,因为它没有导入.
我的问题是:解决这个问题的干净方法是什么?我是否必须以某种方式React通过webpack在全球范围内展示?
解决方案:
我跟着@ salehen-rahman的建议.
在我的webpack.config.js中:
module: {
loaders: [{
test: /\.js$/,
exclude: /node_modules/,
loader: 'react-hot!babel?plugins[]=react-require'
}, {
test: /\.css$/,
loader: 'style!css!autoprefixer?browsers=last 2 versions'
}]
},
Run Code Online (Sandbox Code Playgroud)
我还需要修复我的测试,所以我将其添加到文件helper.js:
require('babel-core/register')({
ignore: /node_modules/,
plugins: ['react-require'],
extensions: ['.js']
});
Run Code Online (Sandbox Code Playgroud)
然后使用以下命令启动我的测试:
mocha --require ./test/helper.js 'test/**/*.js'
Run Code Online (Sandbox Code Playgroud)