更新:我已决定针对我的问题采取不同的路线.我没有尝试直接重用相同的UIViewController,而是使用两个设置为rootViewControllers的 vanilla UIViewControllers.在他们的loadView方法中,他们调用获取前UIViewController并将其视图设置为控制器的视图.这可能是首选的方法,因为我需要设置几个变量和委托.[storyboard instantiateViewControllerWithIdentifier:]
我有一个带有UITabBarController的UIStoryBoard作为与两个UINavigationControllers连接的入口点.每个人共享一个共同的UIViewController作为他们的根视图控制器.应用程序启动时,将选择第一个UITabBarItem,并按预期加载视图.但是,当我选择第二个UITabBarItem时,同一视图不可见.我看到UINavigationBar有黑色背景.我在使用Storyboard界面做错了什么,或者我是否需要通过每个UINavigationController的方法手动实例化UIViewController - 例如loadView?
uitabbarcontroller uiviewcontroller uinavigationcontroller ios uistoryboard
鉴于以下HTML:
<input type="text" id="test" />
Run Code Online (Sandbox Code Playgroud)
和JavaScript:
var $test = $('#test');
$test.on('keydown', function(event) {
if (event.keyCode === 9) {
$(event.target).val('change it!');
}
});
$test.on('change', function(event) {
alert('I am not called!');
});
Run Code Online (Sandbox Code Playgroud)
如果我在输入中键入任何内容并点击tab,为什么change事件不会触发?该keydown事件将触发,并更新输入的值.
如果我删除了.val()电话,那就change开火了.
起初,我认为这是一个jQuery问题(运行1.9.1),但确认如果我使用纯JavaScript,会发生相同的行为.
参考.http://jsfiddle.net/a4LJv/2/
在IE/Firefox中,父元素的draggable属性等于true通过鼠标单击阻止手动文本框插入符号(键盘箭头工作正常).Chrome不会出现此行为.我很好奇以前的浏览器是否有正确的实现,或者这是否是意外行为.此外,我目前的解决方法是禁用draggable属性mousedown并重新启用mouseup.