我在UIViewController
上有一个模态UITabBarViewcontroller
,我想解雇它,然后更改标签栏的所选项目。
我正在尝试通过设置selectedIndex
内部关闭'完成来完成它:
self.dismiss(animated: true, completion: {
self.tabBarController?.selectedIndex = 2
})
如果这是一个新手问题,我道歉,我无法在任何地方找到解决方案。提前感谢您发给我的每个答案,线索或旧的类似问题:)
答案 0 :(得分:2)
我能够通过在解除之前保存presentingViewController
(调用模态segue的视图控制器)的引用来解决此问题,然后使用它在完成内部设置selectedIndex。像这样:
let referenceForTabBarController = self.presentingViewController as! UITabBarController
self.dismiss(animated: true, completion:{
referenceForTabBarController.selectedIndex = 2
})
答案 1 :(得分:1)
在取消View Controller后执行完成块。这意味着您的视图不再显示在屏幕上。因此,您需要在完成块中创建新实例
import React from 'react'
import { PropTypes } from 'prop-types'
import { Icon, Dropdown } from 'semantic-ui-react'
import FormLabel from '../FormLabel'
export const ReduxFormDropdown = ({
input,
label,
placeholder,
meta: {
error,
touched,
},
...custom
}) => {
const errorMessage = (
<div style={{ color: '#E20000', paddingTop: '.3rem', fontSize: '12px' }} >
<Icon name="warning" />
{error}
</div>
)
return (
<div>
<FormLabel>{label}</FormLabel>
<Dropdown
placeholder={placeholder}
value={input.value}
onChange={(param, data) => props.input.onChange(data.value)}
error={touched && error}
selection
{...input}
{...custom}
/>
{touched && error && errorMessage}
</div>
)
}
ReduxFormDropdown.propTypes = {
input: PropTypes.object.isRequired,
label: PropTypes.string,
placeholder: PropTypes.string,
meta: PropTypes.shape({
touched: PropTypes.bool,
error: PropTypes.string,
}),
}
答案 2 :(得分:0)
如果您想将代码置于按钮操作中,或者为表视图或集合视图选择了选择项-Swift 4.2
let appDelegate = UIApplication.shared.delegate as! AppDelegate
let tabBarController = appDelegate.window?.rootViewController as! UITabBarController
tabBarController.selectedIndex = 2