小编kom*_*cha的帖子

当UIViewController推送时显示UITabBar

这是我的情况:
我有一个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一旦它被隐藏了,是否有任何正确的方法来显示控制器被推动的时间?

提前致谢

iphone show uinavigationcontroller uitabbar drilldown

9
推荐指数
3
解决办法
1万
查看次数

从Android上的bundle中检索数据时出现ClassCastException

我有一些状态,我想在片段的生命周期中保存.例如,当屏幕旋转时,它工作正常,但是当从磁盘中杀死并恢复进程时(我认为它是如何工作的),我得到一个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会更好,但我仍然不明白这是怎么回事.

有任何想法吗?

serialization android bundle

8
推荐指数
1
解决办法
3342
查看次数

React预计将在全球范围内推出

我正在玩带有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)

javascript reactjs webpack react-jsx babeljs

8
推荐指数
1
解决办法
1992
查看次数